diff options
Diffstat (limited to 'plugin/bind/setup.go')
-rw-r--r-- | plugin/bind/setup.go | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/plugin/bind/setup.go b/plugin/bind/setup.go index 796377841..a57e8ffce 100644 --- a/plugin/bind/setup.go +++ b/plugin/bind/setup.go @@ -12,13 +12,21 @@ import ( func setupBind(c *caddy.Controller) error { config := dnsserver.GetConfig(c) + + // addresses will be consolidated over all BIND directives available in that BlocServer + all := []string{} for c.Next() { - if !c.Args(&config.ListenHost) { - return plugin.Error("bind", c.ArgErr()) + addrs := c.RemainingArgs() + if len(addrs) == 0 { + return plugin.Error("bind", fmt.Errorf("at least one address is expected")) } + for _, addr := range addrs { + if net.ParseIP(addr) == nil { + return plugin.Error("bind", fmt.Errorf("not a valid IP address: %s", addr)) + } + } + all = append(all, addrs...) } - if net.ParseIP(config.ListenHost) == nil { - return plugin.Error("bind", fmt.Errorf("not a valid IP address: %s", config.ListenHost)) - } + config.ListenHosts = all return nil } |