aboutsummaryrefslogtreecommitdiff
path: root/plugin/forward/persistent.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2018-04-24 17:09:15 +0100
committerGravatar GitHub <noreply@github.com> 2018-04-24 17:09:15 +0100
commitf529a2771ff9d1be38d2200c0e02382600b499f1 (patch)
tree84b877da3539c7684febf216339dbf7b81d0eb7a /plugin/forward/persistent.go
parentd49194623f3b87701efd4d636b4a8caaec3b51aa (diff)
downloadcoredns-f529a2771ff9d1be38d2200c0e02382600b499f1.tar.gz
coredns-f529a2771ff9d1be38d2200c0e02382600b499f1.tar.zst
coredns-f529a2771ff9d1be38d2200c0e02382600b499f1.zip
plugin/forward: close channels when connManager returns (#1727)
Close a bunch of channels, also change the test to just use a for loop with a counter.
Diffstat (limited to 'plugin/forward/persistent.go')
-rw-r--r--plugin/forward/persistent.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugin/forward/persistent.go b/plugin/forward/persistent.go
index 2f488e485..decac412c 100644
--- a/plugin/forward/persistent.go
+++ b/plugin/forward/persistent.go
@@ -44,7 +44,14 @@ func newTransport(addr string, tlsConfig *tls.Config) *transport {
ret: make(chan connErr),
stop: make(chan bool),
}
- go t.connManager()
+ go func() {
+ t.connManager()
+ // if connManager returns it has been stopped.
+ close(t.stop)
+ close(t.yield)
+ close(t.dial)
+ // close(t.ret) // we can still be dialing and wanting to send back the socket on t.ret
+ }()
return t
}