aboutsummaryrefslogtreecommitdiff
path: root/middleware/file/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/file/setup.go')
-rw-r--r--middleware/file/setup.go62
1 files changed, 32 insertions, 30 deletions
diff --git a/middleware/file/setup.go b/middleware/file/setup.go
index c48e4c089..9cbcf2c21 100644
--- a/middleware/file/setup.go
+++ b/middleware/file/setup.go
@@ -92,12 +92,17 @@ func fileParse(c *caddy.Controller) (Zones, error) {
noReload := false
prxy := proxy.Proxy{}
+ t := []string{}
+ var e error
+
for c.NextBlock() {
- t, _, e := TransferParse(c, false)
- if e != nil {
- return Zones{}, e
- }
switch c.Val() {
+ case "transfer":
+ t, _, e = TransferParse(c, false)
+ if e != nil {
+ return Zones{}, e
+ }
+
case "no_reload":
noReload = true
@@ -128,40 +133,37 @@ func fileParse(c *caddy.Controller) (Zones, error) {
// TransferParse parses transfer statements: 'transfer to [address...]'.
func TransferParse(c *caddy.Controller, secondary bool) (tos, froms []string, err error) {
- what := c.Val()
if !c.NextArg() {
return nil, nil, c.ArgErr()
}
value := c.Val()
- switch what {
- case "transfer":
- if value == "to" {
- tos = c.RemainingArgs()
- for i := range tos {
- if tos[i] != "*" {
- normalized, err := dnsutil.ParseHostPort(tos[i], "53")
- if err != nil {
- return nil, nil, err
- }
- tos[i] = normalized
+ switch value {
+ case "to":
+ tos = c.RemainingArgs()
+ for i := range tos {
+ if tos[i] != "*" {
+ normalized, err := dnsutil.ParseHostPort(tos[i], "53")
+ if err != nil {
+ return nil, nil, err
}
+ tos[i] = normalized
}
}
- if value == "from" {
- if !secondary {
- return nil, nil, fmt.Errorf("can't use `transfer from` when not being a secondary")
- }
- froms = c.RemainingArgs()
- for i := range froms {
- if froms[i] != "*" {
- normalized, err := dnsutil.ParseHostPort(froms[i], "53")
- if err != nil {
- return nil, nil, err
- }
- froms[i] = normalized
- } else {
- return nil, nil, fmt.Errorf("can't use '*' in transfer from")
+
+ case "from":
+ if !secondary {
+ return nil, nil, fmt.Errorf("can't use `transfer from` when not being a secondary")
+ }
+ froms = c.RemainingArgs()
+ for i := range froms {
+ if froms[i] != "*" {
+ normalized, err := dnsutil.ParseHostPort(froms[i], "53")
+ if err != nil {
+ return nil, nil, err
}
+ froms[i] = normalized
+ } else {
+ return nil, nil, fmt.Errorf("can't use '*' in transfer from")
}
}
}