aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-11-06 19:37:43 +0000
committerGravatar GitHub <noreply@github.com> 2016-11-06 19:37:43 +0000
commitd3dae8d77f8be0800dc261c7982c53a34c9fb744 (patch)
tree9577617fb7b564314376b7c08b8e0bbeb44af1cf
parent243797a3871a912f14c5d719157708e35179fc7f (diff)
downloadcoredns-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.go2
-rw-r--r--middleware/auto/walk_test.go19
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 {