diff options
author | 2016-11-09 21:26:49 +0000 | |
---|---|---|
committer | 2016-11-09 21:26:49 +0000 | |
commit | 0919216d3ca513d6ae18ffb0ed35b6a89fd393c6 (patch) | |
tree | 4dc5882a582b17778869428c707d6ab671c26065 /middleware/auto/setup.go | |
parent | a8287bb04dc7861f349c96ba790e4a007dc7657c (diff) | |
download | coredns-0919216d3ca513d6ae18ffb0ed35b6a89fd393c6.tar.gz coredns-0919216d3ca513d6ae18ffb0ed35b6a89fd393c6.tar.zst coredns-0919216d3ca513d6ae18ffb0ed35b6a89fd393c6.zip |
middleware/{file, auto}: resolve external CNAMEs
Do the same thing as in etcd and give the option of externally resolving
CNAME. This is needed when CoreDNS is a proxy as well is serving zones.
Diffstat (limited to 'middleware/auto/setup.go')
-rw-r--r-- | middleware/auto/setup.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/middleware/auto/setup.go b/middleware/auto/setup.go index 7681ea957..2d397a079 100644 --- a/middleware/auto/setup.go +++ b/middleware/auto/setup.go @@ -2,6 +2,7 @@ package auto import ( "log" + "net" "os" "path" "regexp" @@ -12,6 +13,7 @@ import ( "github.com/miekg/coredns/middleware" "github.com/miekg/coredns/middleware/file" "github.com/miekg/coredns/middleware/metrics" + "github.com/miekg/coredns/middleware/proxy" "github.com/mholt/caddy" ) @@ -142,6 +144,19 @@ func autoParse(c *caddy.Controller) (Auto, error) { case "no_reload": a.loader.noReload = true + case "upstream": + args := c.RemainingArgs() + if len(args) == 0 { + return a, false, c.ArgErr() + } + for i := 0; i < len(args); i++ { + h, p, e := net.SplitHostPort(args[i]) + if e != nil && p == "" { + args[i] = h + ":53" + } + } + a.loader.Proxy = proxy.New(args) + default: t, _, e := file.TransferParse(c, false) if e != nil { |