aboutsummaryrefslogtreecommitdiff
path: root/plugin/ready/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/ready/setup.go')
-rw-r--r--plugin/ready/setup.go27
1 files changed, 15 insertions, 12 deletions
diff --git a/plugin/ready/setup.go b/plugin/ready/setup.go
index 64967dbd4..7cf286b3d 100644
--- a/plugin/ready/setup.go
+++ b/plugin/ready/setup.go
@@ -21,22 +21,25 @@ func setup(c *caddy.Controller) error {
if err != nil {
return plugin.Error("ready", err)
}
-
rd := &ready{Addr: addr}
uniqAddr.Set(addr, rd.onStartup)
+ c.OnStartup(func() error { uniqAddr.Set(addr, rd.onStartup); return nil })
+ c.OnRestartFailed(func() error { uniqAddr.Set(addr, rd.onStartup); return nil })
- c.OncePerServerBlock(func() error {
- c.OnStartup(func() error {
- return uniqAddr.ForEach()
- })
- return nil
- })
+ c.OnStartup(func() error { return uniqAddr.ForEach() })
+ c.OnRestartFailed(func() error { return uniqAddr.ForEach() })
c.OnStartup(func() error {
- // Each plugin in this server block will (if they support it) report readiness.
- plugs := dnsserver.GetConfig(c).Handlers()
- for _, p := range plugs {
+ for _, p := range dnsserver.GetConfig(c).Handlers() {
+ if r, ok := p.(Readiness); ok {
+ plugins.Append(r, p.Name())
+ }
+ }
+ return nil
+ })
+ c.OnRestartFailed(func() error {
+ for _, p := range dnsserver.GetConfig(c).Handlers() {
if r, ok := p.(Readiness); ok {
plugins.Append(r, p.Name())
}
@@ -44,14 +47,14 @@ func setup(c *caddy.Controller) error {
return nil
})
- c.OnRestart(rd.onRestart)
+ c.OnRestart(rd.onFinalShutdown)
c.OnFinalShutdown(rd.onFinalShutdown)
return nil
}
func parse(c *caddy.Controller) (string, error) {
- addr := ""
+ addr := ":8181"
i := 0
for c.Next() {
if i > 0 {