plugin/dnssec: Add root support (#2195)

This commit is contained in:
Manuel Stocker
2018-10-13 19:49:55 +02:00
committed by Miek Gieben
parent 6d2bc0a8f2
commit 3cef6674e9

View File

@@ -2,6 +2,7 @@ package dnssec
import ( import (
"fmt" "fmt"
"path"
"strconv" "strconv"
"strings" "strings"
@@ -113,6 +114,7 @@ func dnssecParse(c *caddy.Controller) ([]string, []*DNSKEY, int, error) {
func keyParse(c *caddy.Controller) ([]*DNSKEY, error) { func keyParse(c *caddy.Controller) ([]*DNSKEY, error) {
keys := []*DNSKEY{} keys := []*DNSKEY{}
config := dnsserver.GetConfig(c)
if !c.NextArg() { if !c.NextArg() {
return nil, c.ArgErr() return nil, c.ArgErr()
@@ -133,6 +135,9 @@ func keyParse(c *caddy.Controller) ([]*DNSKEY, error) {
if strings.HasSuffix(k, ".private") { if strings.HasSuffix(k, ".private") {
base = k[:len(k)-8] base = k[:len(k)-8]
} }
if !path.IsAbs(base) && config.Root != "" {
base = path.Join(config.Root, base)
}
k, err := ParseKeyFile(base+".key", base+".private") k, err := ParseKeyFile(base+".key", base+".private")
if err != nil { if err != nil {
return nil, err return nil, err