aboutsummaryrefslogtreecommitdiff
path: root/middleware/auto/setup.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-11-09 21:26:49 +0000
committerGravatar Miek Gieben <miek@miek.nl> 2016-11-09 21:26:49 +0000
commit0919216d3ca513d6ae18ffb0ed35b6a89fd393c6 (patch)
tree4dc5882a582b17778869428c707d6ab671c26065 /middleware/auto/setup.go
parenta8287bb04dc7861f349c96ba790e4a007dc7657c (diff)
downloadcoredns-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.go15
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 {