aboutsummaryrefslogtreecommitdiff
path: root/middleware/proxy/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/proxy/setup.go')
-rw-r--r--middleware/proxy/setup.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/middleware/proxy/setup.go b/middleware/proxy/setup.go
index 2356ab962..538ecb67a 100644
--- a/middleware/proxy/setup.go
+++ b/middleware/proxy/setup.go
@@ -19,11 +19,24 @@ func setup(c *caddy.Controller) error {
if err != nil {
return middleware.Error("proxy", err)
}
+
+ P := &Proxy{}
dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler {
- return Proxy{Next: next, Upstreams: upstreams}
+ P.Next = next
+ P.Upstreams = &upstreams
+ return P
})
- c.OnStartup(OnStartup)
+ c.OnStartup(OnStartupMetrics)
+
+ for _, u := range upstreams {
+ c.OnStartup(func() error {
+ return u.Exchanger().OnStartup(P)
+ })
+ c.OnShutdown(func() error {
+ return u.Exchanger().OnShutdown(P)
+ })
+ }
return nil
}