diff options
Diffstat (limited to 'middleware/proxy/setup.go')
-rw-r--r-- | middleware/proxy/setup.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/middleware/proxy/setup.go b/middleware/proxy/setup.go new file mode 100644 index 000000000..81dc7777c --- /dev/null +++ b/middleware/proxy/setup.go @@ -0,0 +1,26 @@ +package proxy + +import ( + "github.com/miekg/coredns/core/dnsserver" + + "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 err + } + dnsserver.GetConfig(c).AddMiddleware(func(next dnsserver.Handler) dnsserver.Handler { + return Proxy{Next: next, Client: Clients(), Upstreams: upstreams} + }) + + return nil +} |