Commit 7ac507d9 authored by Ruslan Drozhdzh's avatar Ruslan Drozhdzh Committed by Miek Gieben

plugin/forward: close connection manager in proxy finalizer (#1768)

- connManager() goroutine will stop when Proxy is about to be
   garbage collected. This means that no queries are in progress,
   and no queries are going to come
parent 38e27fd9
......@@ -2,6 +2,7 @@ package forward
import (
"crypto/tls"
"runtime"
"sync/atomic"
"time"
......@@ -36,6 +37,7 @@ func NewProxy(addr string, tlsConfig *tls.Config) *Proxy {
avgRtt: int64(timeout / 2),
}
p.client = dnsClient(tlsConfig)
runtime.SetFinalizer(p, (*Proxy).finalizer)
return p
}
......@@ -91,6 +93,9 @@ func (p *Proxy) Down(maxfails uint32) bool {
// close stops the health checking goroutine.
func (p *Proxy) close() {
p.probe.Stop()
}
func (p *Proxy) finalizer() {
p.transport.Stop()
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment