diff options
Diffstat (limited to 'middleware/file/setup.go')
-rw-r--r-- | middleware/file/setup.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/middleware/file/setup.go b/middleware/file/setup.go index dd1f17d9a..95e3209f4 100644 --- a/middleware/file/setup.go +++ b/middleware/file/setup.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "os" + "path" "github.com/miekg/coredns/core/dnsserver" "github.com/miekg/coredns/middleware" @@ -49,6 +50,8 @@ func fileParse(c *caddy.Controller) (Zones, error) { names := []string{} origins := []string{} + config := dnsserver.GetConfig(c) + for c.Next() { if c.Val() == "file" { // file db.file [zones...] @@ -64,6 +67,10 @@ func fileParse(c *caddy.Controller) (Zones, error) { origins = args } + if !path.IsAbs(fileName) && config.Root != "" { + fileName = path.Join(config.Root, fileName) + } + reader, err := os.Open(fileName) if err != nil { // bail out |