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.
This commit is contained in:
parent
58387afd5d
commit
2eafe3ee94
1 changed files with 5 additions and 4 deletions
|
@ -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
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Reference in a new issue