aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/file/setup.go9
-rw-r--r--plugin/file/setup_test.go33
2 files changed, 39 insertions, 3 deletions
diff --git a/plugin/file/setup.go b/plugin/file/setup.go
index 9be09fe8d..162db6d65 100644
--- a/plugin/file/setup.go
+++ b/plugin/file/setup.go
@@ -97,7 +97,6 @@ func fileParse(c *caddy.Controller) (Zones, error) {
names = append(names, origins[i])
}
- upstr := upstream.New()
t := []string{}
var e error
@@ -128,11 +127,15 @@ func fileParse(c *caddy.Controller) (Zones, error) {
if t != nil {
z[origin].TransferTo = append(z[origin].TransferTo, t...)
}
- z[origin].ReloadInterval = reload
- z[origin].Upstream = upstr
}
}
}
+
+ for origin := range z {
+ z[origin].ReloadInterval = reload
+ z[origin].Upstream = upstream.New()
+ }
+
if openErr != nil {
if reload == 0 {
// reload hasn't been set make this a fatal error
diff --git a/plugin/file/setup_test.go b/plugin/file/setup_test.go
index f6252759b..6a1d5e790 100644
--- a/plugin/file/setup_test.go
+++ b/plugin/file/setup_test.go
@@ -2,6 +2,7 @@ package file
import (
"testing"
+ "time"
"github.com/coredns/coredns/plugin/test"
@@ -90,3 +91,35 @@ func TestFileParse(t *testing.T) {
}
}
}
+
+func TestParseReload(t *testing.T) {
+ name, rm, err := test.TempFile(".", dbMiekNL)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer rm()
+
+ tests := []struct {
+ input string
+ reload time.Duration
+ }{
+ {
+ `file ` + name + ` example.org.`,
+ 1 * time.Minute,
+ },
+ {
+ `file ` + name + ` example.org. {
+ reload 5s
+ }`,
+ 5 * time.Second,
+ },
+ }
+
+ for i, test := range tests {
+ c := caddy.NewTestController("dns", test.input)
+ z, _ := fileParse(c)
+ if x := z.Z["example.org."].ReloadInterval; x != test.reload {
+ t.Errorf("Test %d expected reload to be %s, but got %s", i, test.reload, x)
+ }
+ }
+}