mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 08:14:18 -04:00
plugin/file: fix setting ReloadInterval (#3017)
* plugin/file: fix setting ReloadInterval The reload interval was only correctly set if there was an extra block for the file. Move this down to set up. Add test case that fails before, but now works. Signed-off-by: Miek Gieben <miek@miek.nl> * layout and use Errorf Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user