aboutsummaryrefslogtreecommitdiff
path: root/middleware/file/secondary.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-13 20:14:03 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-13 20:14:03 +0100
commit982377516b3c7381de40ebbcdb6e8a73e6b44b54 (patch)
treedaee5359b5cde760d1f8aa74bfc83dced9d7170a /middleware/file/secondary.go
parent5a8a1253991c4346474bc970679ade63fda0a40d (diff)
downloadcoredns-982377516b3c7381de40ebbcdb6e8a73e6b44b54.tar.gz
coredns-982377516b3c7381de40ebbcdb6e8a73e6b44b54.tar.zst
coredns-982377516b3c7381de40ebbcdb6e8a73e6b44b54.zip
Only transfer a zone once (#117)
Use sync.Once to only transfer a zone once. Fixes #115
Diffstat (limited to 'middleware/file/secondary.go')
-rw-r--r--middleware/file/secondary.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/middleware/file/secondary.go b/middleware/file/secondary.go
index 057d6a4f3..66b1daa98 100644
--- a/middleware/file/secondary.go
+++ b/middleware/file/secondary.go
@@ -18,10 +18,13 @@ func (z *Zone) TransferIn() error {
m.SetAxfr(z.name)
z1 := z.Copy()
- var Err error
+ var (
+ Err error
+ tr string
+ )
Transfer:
- for _, tr := range z.TransferFrom {
+ for _, tr = range z.TransferFrom {
t := new(dns.Transfer)
c, err := t.In(m, tr)
if err != nil {
@@ -52,15 +55,15 @@ Transfer:
break
}
if Err != nil {
- log.Printf("[ERROR] Failed to transfer %s", z.name)
- return nil
+ log.Printf("[ERROR] Failed to transfer %s: %s", z.name, Err)
+ return Err
}
z.Tree = z1.Tree
z.SOA = z1.SOA
z.SIG = z1.SIG
*z.Expired = false
- log.Printf("[INFO] Transferred: %s", z.name)
+ log.Printf("[INFO] Transferred: %s from %s", z.name, tr)
return nil
}