diff options
author | 2016-11-06 19:37:43 +0000 | |
---|---|---|
committer | 2016-11-06 19:37:43 +0000 | |
commit | d3dae8d77f8be0800dc261c7982c53a34c9fb744 (patch) | |
tree | 9577617fb7b564314376b7c08b8e0bbeb44af1cf | |
parent | 243797a3871a912f14c5d719157708e35179fc7f (diff) | |
download | coredns-d3dae8d77f8be0800dc261c7982c53a34c9fb744.tar.gz coredns-d3dae8d77f8be0800dc261c7982c53a34c9fb744.tar.zst coredns-d3dae8d77f8be0800dc261c7982c53a34c9fb744.zip |
middleware/auto: handle non-existent directory (#385)
Don't panic on a non-existent directory. Add test for it as well.
Fixes #384
-rw-r--r-- | middleware/auto/walk.go | 2 | ||||
-rw-r--r-- | middleware/auto/walk_test.go | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/middleware/auto/walk.go b/middleware/auto/walk.go index 8c3370e16..3f7ebb19f 100644 --- a/middleware/auto/walk.go +++ b/middleware/auto/walk.go @@ -23,7 +23,7 @@ func (a Auto) Walk() error { } filepath.Walk(a.loader.directory, func(path string, info os.FileInfo, err error) error { - if info.IsDir() { + if info == nil || info.IsDir() { return nil } diff --git a/middleware/auto/walk_test.go b/middleware/auto/walk_test.go index f15548dba..29b9dbb55 100644 --- a/middleware/auto/walk_test.go +++ b/middleware/auto/walk_test.go @@ -52,6 +52,25 @@ func TestWalk(t *testing.T) { } } +func TestWalkNonExistent(t *testing.T) { + log.SetOutput(ioutil.Discard) + + nonExistingDir := "highly_unlikely_to_exist_dir" + + ldr := loader{ + directory: nonExistingDir, + re: regexp.MustCompile(`db\.(.*)`), + template: `${1}`, + } + + a := Auto{ + loader: ldr, + Zones: &Zones{}, + } + + a.Walk() +} + func createFiles() (string, error) { dir, err := ioutil.TempDir(os.TempDir(), "coredns") if err != nil { |