From 2eafe3ee94bc4b1e94000bc74f8ee524132ae27c Mon Sep 17 00:00:00 2001 From: Zhipeng JIANG Date: Tue, 18 Oct 2016 00:04:18 +0800 Subject: Fix files reload failure within a single root zone. (#337) In the file middleware, if there are multiple zone files under a single root zone, watchers are only invoked on the last element of `zones.Names`. This is caused by loop override on the variable `n`. This issue can be fixed by passing zone object, which calls reload watcher directly. --- middleware/file/setup.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'middleware/file/setup.go') diff --git a/middleware/file/setup.go b/middleware/file/setup.go index 95e3209f4..a73fa50b1 100644 --- a/middleware/file/setup.go +++ b/middleware/file/setup.go @@ -27,12 +27,13 @@ func setup(c *caddy.Controller) error { // Add startup functions to notify the master(s). for _, n := range zones.Names { + z := zones.Z[n] c.OnStartup(func() error { - zones.Z[n].StartupOnce.Do(func() { - if len(zones.Z[n].TransferTo) > 0 { - zones.Z[n].Notify() + z.StartupOnce.Do(func() { + if len(z.TransferTo) > 0 { + z.Notify() } - zones.Z[n].Reload(nil) + z.Reload(nil) }) return nil }) -- cgit v1.2.3