diff options
Diffstat (limited to 'plugin/forward/setup.go')
-rw-r--r-- | plugin/forward/setup.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugin/forward/setup.go b/plugin/forward/setup.go index 6de0c870f..2d2ff1914 100644 --- a/plugin/forward/setup.go +++ b/plugin/forward/setup.go @@ -4,6 +4,7 @@ import ( "crypto/tls" "errors" "fmt" + "path/filepath" "strconv" "time" @@ -165,6 +166,7 @@ func parseStanza(c *caddy.Controller) (*Forward, error) { } func parseBlock(c *caddy.Controller, f *Forward) error { + config := dnsserver.GetConfig(c) switch c.Val() { case "except": ignore := c.RemainingArgs() @@ -230,7 +232,11 @@ func parseBlock(c *caddy.Controller, f *Forward) error { if len(args) > 3 { return c.ArgErr() } - + for i := range args { + if !filepath.IsAbs(args[i]) && config.Root != "" { + args[i] = filepath.Join(config.Root, args[i]) + } + } tlsConfig, err := pkgtls.NewTLSConfigFromArgs(args...) if err != nil { return err |