aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/file/README.md10
-rw-r--r--plugin/file/file.go2
-rw-r--r--plugin/file/setup.go1
-rw-r--r--test/example_test.go21
4 files changed, 18 insertions, 16 deletions
diff --git a/plugin/file/README.md b/plugin/file/README.md
index 5322a8ac6..58cfe9586 100644
--- a/plugin/file/README.md
+++ b/plugin/file/README.md
@@ -44,7 +44,7 @@ file DBFILE [ZONES... ] {
Load the `example.org` zone from `example.org.signed` and allow transfers to the internet, but send
notifies to 10.240.1.1
-~~~ txt
+~~~ corefile
example.org {
file example.org.signed {
transfer to *
@@ -55,7 +55,7 @@ example.org {
Or use a single zone file for multiple zones:
-~~~ txt
+~~~ corefile
. {
file example.org.signed example.org example.net {
transfer to *
@@ -67,7 +67,7 @@ Or use a single zone file for multiple zones:
Note that if you have a configuration like the following you may run into a problem of the origin
not being correctly recognized:
-~~~ txt
+~~~ corefile
. {
file db.example.org
}
@@ -78,7 +78,7 @@ which, in this case, is the root zone. Any contents of `db.example.org` will the
origin set; this may or may not do what you want.
It's better to be explicit here and specify the correct origin. This can be done in two ways:
-~~~ txt
+~~~ corefile
. {
file db.example.org example.org
}
@@ -86,7 +86,7 @@ It's better to be explicit here and specify the correct origin. This can be done
Or
-~~~ txt
+~~~ corefile
example.org {
file db.example.org
}
diff --git a/plugin/file/file.go b/plugin/file/file.go
index 169720e64..c63fa43f5 100644
--- a/plugin/file/file.go
+++ b/plugin/file/file.go
@@ -145,7 +145,7 @@ func Parse(f io.Reader, origin, fileName string, serial int64) (*Zone, error) {
}
}
if !seenSOA {
- return nil, fmt.Errorf("file %q has no SOA record", fileName)
+ return nil, fmt.Errorf("file %q has no SOA record for origin %s", fileName, origin)
}
return z, nil
diff --git a/plugin/file/setup.go b/plugin/file/setup.go
index 162db6d65..ce78e815e 100644
--- a/plugin/file/setup.go
+++ b/plugin/file/setup.go
@@ -87,6 +87,7 @@ func fileParse(c *caddy.Controller) (Zones, error) {
origins[i] = plugin.Host(origins[i]).Normalize()
z[origins[i]] = NewZone(origins[i], fileName)
if openErr == nil {
+ reader.Seek(0, 0)
zone, err := Parse(reader, origins[i], fileName, 0)
if err == nil {
z[origins[i]] = zone
diff --git a/test/example_test.go b/test/example_test.go
index 852143fe8..9d8dec832 100644
--- a/test/example_test.go
+++ b/test/example_test.go
@@ -2,14 +2,15 @@ package test
const exampleOrg = `; example.org test file
$TTL 3600
-example.org. IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 1209600 3600
-example.org. IN NS b.iana-servers.net.
-example.org. IN NS a.iana-servers.net.
-example.org. IN A 127.0.0.1
-example.org. IN A 127.0.0.2
-short.example.org. 1 IN A 127.0.0.3
-*.w.example.org. IN TXT "Wildcard"
-a.b.c.w.example.org. IN TXT "Not a wildcard"
-cname.example.org. IN CNAME www.example.net.
-service.example.org. IN SRV 8080 10 10 example.org.
+@ IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 1209600 3600
+@ IN NS b.iana-servers.net.
+@ IN NS a.iana-servers.net.
+@ IN A 127.0.0.1
+@ IN A 127.0.0.2
+short 1 IN A 127.0.0.3
+
+*.w 3600 IN TXT "Wildcard"
+a.b.c.w IN TXT "Not a wildcard"
+cname IN CNAME www.example.net.
+service IN SRV 8080 10 10 @
`