aboutsummaryrefslogtreecommitdiff
path: root/plugin/forward/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/forward/setup.go')
-rw-r--r--plugin/forward/setup.go27
1 files changed, 4 insertions, 23 deletions
diff --git a/plugin/forward/setup.go b/plugin/forward/setup.go
index bed20f0c7..5231bcc22 100644
--- a/plugin/forward/setup.go
+++ b/plugin/forward/setup.go
@@ -62,25 +62,14 @@ func setup(c *caddy.Controller) error {
// OnStartup starts a goroutines for all proxies.
func (f *Forward) OnStartup() (err error) {
- if f.hcInterval == 0 {
- for _, p := range f.proxies {
- p.host.fails = 0
- }
- return nil
- }
-
for _, p := range f.proxies {
- go p.healthCheck()
+ p.start(f.hcInterval)
}
return nil
}
// OnShutdown stops all configured proxies.
func (f *Forward) OnShutdown() error {
- if f.hcInterval == 0 {
- return nil
- }
-
for _, p := range f.proxies {
p.close()
}
@@ -88,9 +77,7 @@ func (f *Forward) OnShutdown() error {
}
// Close is a synonym for OnShutdown().
-func (f *Forward) Close() {
- f.OnShutdown()
-}
+func (f *Forward) Close() { f.OnShutdown() }
func parseForward(c *caddy.Controller) (*Forward, error) {
f := New()
@@ -140,8 +127,8 @@ func parseForward(c *caddy.Controller) (*Forward, error) {
}
// We can't set tlsConfig here, because we haven't parsed it yet.
- // We set it below at the end of parseBlock.
- p := NewProxy(h)
+ // We set it below at the end of parseBlock, use nil now.
+ p := NewProxy(h, nil /* no TLS */)
f.proxies = append(f.proxies, p)
}
@@ -200,17 +187,11 @@ func parseBlock(c *caddy.Controller, f *Forward) error {
return fmt.Errorf("health_check can't be negative: %d", dur)
}
f.hcInterval = dur
- for i := range f.proxies {
- f.proxies[i].hcInterval = dur
- }
case "force_tcp":
if c.NextArg() {
return c.ArgErr()
}
f.forceTCP = true
- for i := range f.proxies {
- f.proxies[i].forceTCP = true
- }
case "tls":
args := c.RemainingArgs()
if len(args) != 3 {