aboutsummaryrefslogtreecommitdiff
path: root/plugin/file/setup.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--plugin/file/setup.go27
1 files changed, 18 insertions, 9 deletions
diff --git a/plugin/file/setup.go b/plugin/file/setup.go
index 95e5d729a..73a2a233e 100644
--- a/plugin/file/setup.go
+++ b/plugin/file/setup.go
@@ -93,17 +93,26 @@ func fileParse(c *caddy.Controller) (Zones, error) {
openErr = err
}
- for i := range origins {
- 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 {
- return Zones{}, err
+ err = func() error {
+ defer reader.Close()
+
+ for i := range origins {
+ 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 {
+ return err
+ }
+ z[origins[i]] = zone
}
- z[origins[i]] = zone
+ names = append(names, origins[i])
}
- names = append(names, origins[i])
+ return nil
+ }()
+
+ if err != nil {
+ return Zones{}, err
}
for c.NextBlock() {