diff options
author | 2017-09-14 09:36:06 +0100 | |
---|---|---|
committer | 2017-09-14 09:36:06 +0100 | |
commit | d8714e64e400ef873c2adc4d929a07d7890727b9 (patch) | |
tree | c9fa4c157e6af12eb1517654f8d23ca5d5619513 /plugin/proxy/setup.go | |
parent | b984aa45595dc95253b91191afe7d3ee29e71b48 (diff) | |
download | coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.gz coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.zst coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.zip |
Remove the word middleware (#1067)
* Rename middleware to plugin
first pass; mostly used 'sed', few spots where I manually changed
text.
This still builds a coredns binary.
* fmt error
* Rename AddMiddleware to AddPlugin
* Readd AddMiddleware to remain backwards compat
Diffstat (limited to 'plugin/proxy/setup.go')
-rw-r--r-- | plugin/proxy/setup.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/plugin/proxy/setup.go b/plugin/proxy/setup.go new file mode 100644 index 000000000..bbe65c35d --- /dev/null +++ b/plugin/proxy/setup.go @@ -0,0 +1,46 @@ +package proxy + +import ( + "github.com/coredns/coredns/core/dnsserver" + "github.com/coredns/coredns/plugin" + + "github.com/mholt/caddy" +) + +func init() { + caddy.RegisterPlugin("proxy", caddy.Plugin{ + ServerType: "dns", + Action: setup, + }) +} + +func setup(c *caddy.Controller) error { + upstreams, err := NewStaticUpstreams(&c.Dispenser) + if err != nil { + return plugin.Error("proxy", err) + } + + t := dnsserver.GetConfig(c).Handler("trace") + P := &Proxy{Trace: t} + dnsserver.GetConfig(c).AddPlugin(func(next plugin.Handler) plugin.Handler { + P.Next = next + P.Upstreams = &upstreams + return P + }) + + c.OnStartup(OnStartupMetrics) + + for i := range upstreams { + u := upstreams[i] + c.OnStartup(func() error { + return u.Exchanger().OnStartup(P) + }) + c.OnShutdown(func() error { + return u.Exchanger().OnShutdown(P) + }) + // Register shutdown handlers. + c.OnShutdown(u.Stop) + } + + return nil +} |