Commit 2eafe3ee authored by Zhipeng JIANG's avatar Zhipeng JIANG Committed by Miek Gieben

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.
parent 58387afd
...@@ -27,12 +27,13 @@ func setup(c *caddy.Controller) error { ...@@ -27,12 +27,13 @@ func setup(c *caddy.Controller) error {
// Add startup functions to notify the master(s). // Add startup functions to notify the master(s).
for _, n := range zones.Names { for _, n := range zones.Names {
z := zones.Z[n]
c.OnStartup(func() error { c.OnStartup(func() error {
zones.Z[n].StartupOnce.Do(func() { z.StartupOnce.Do(func() {
if len(zones.Z[n].TransferTo) > 0 { if len(z.TransferTo) > 0 {
zones.Z[n].Notify() z.Notify()
} }
zones.Z[n].Reload(nil) z.Reload(nil)
}) })
return nil return nil
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment