aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/setup/dnssec.go15
-rw-r--r--core/setup/file.go5
2 files changed, 12 insertions, 8 deletions
diff --git a/core/setup/dnssec.go b/core/setup/dnssec.go
index 523f6e659..39f34b66f 100644
--- a/core/setup/dnssec.go
+++ b/core/setup/dnssec.go
@@ -1,7 +1,7 @@
package setup
import (
- "path"
+ "strings"
"github.com/miekg/coredns/middleware"
"github.com/miekg/coredns/middleware/dnssec"
@@ -35,8 +35,7 @@ func dnssecParse(c *Controller) ([]string, []*dnssec.DNSKEY, error) {
for c.NextBlock() {
k, e := keyParse(c)
if e != nil {
- // TODO(miek): Log and drop or something? stop startup?
- continue
+ return nil, nil, e
}
keys = append(keys, k...)
}
@@ -61,11 +60,13 @@ func keyParse(c *Controller) ([]*dnssec.DNSKEY, error) {
if value == "file" {
ks := c.RemainingArgs()
for _, k := range ks {
- // Kmiek.nl.+013+26205.key, handle .private or without extension: Kmiek.nl.+013+26205
- ext := path.Ext(k) // TODO(miek): test things like .key
base := k
- if len(ext) > 0 {
- base = k[:len(k)-len(ext)]
+ // Kmiek.nl.+013+26205.key, handle .private or without extension: Kmiek.nl.+013+26205
+ if strings.HasSuffix(k, ".key") {
+ base = k[:len(k)-4]
+ }
+ if strings.HasSuffix(k, ".private") {
+ base = k[:len(k)-8]
}
k, err := dnssec.ParseKeyFile(base+".key", base+".private")
if err != nil {
diff --git a/core/setup/file.go b/core/setup/file.go
index b535332a7..a0b90c3ca 100644
--- a/core/setup/file.go
+++ b/core/setup/file.go
@@ -54,7 +54,8 @@ func fileParse(c *Controller) (file.Zones, error) {
reader, err := os.Open(fileName)
if err != nil {
- continue
+ // bail out
+ return file.Zones{}, err
}
for i, _ := range origins {
@@ -62,6 +63,8 @@ func fileParse(c *Controller) (file.Zones, error) {
zone, err := file.Parse(reader, origins[i], fileName)
if err == nil {
z[origins[i]] = zone
+ } else {
+ return file.Zones{}, err
}
names = append(names, origins[i])
}