diff options
author | 2016-04-13 20:14:03 +0100 | |
---|---|---|
committer | 2016-04-13 20:14:03 +0100 | |
commit | 982377516b3c7381de40ebbcdb6e8a73e6b44b54 (patch) | |
tree | daee5359b5cde760d1f8aa74bfc83dced9d7170a /middleware/file/secondary.go | |
parent | 5a8a1253991c4346474bc970679ade63fda0a40d (diff) | |
download | coredns-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.go | 13 |
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 } |