From 573ad62b770b7320f5499a1fc64a70b8f118e3b9 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Mon, 16 Apr 2018 19:51:49 +0100 Subject: [PATCH] plugin/forward: min and max for avgRTT (#1680) * Move to readtimeout * lets compile * address comment * comment from pr * much smaller minimum --- plugin/forward/connect.go | 8 ++++++-- plugin/forward/proxy.go | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugin/forward/connect.go b/plugin/forward/connect.go index 9dd6ac855..6b335c5b1 100644 --- a/plugin/forward/connect.go +++ b/plugin/forward/connect.go @@ -18,10 +18,14 @@ import ( func (p *Proxy) readTimeout() time.Duration { rtt := time.Duration(atomic.LoadInt64(&p.avgRtt)) - if rtt < timeout/2 { + + if rtt < minTimeout { + return minTimeout + } + if rtt < maxTimeout/2 { return 2 * rtt } - return timeout + return maxTimeout } func (p *Proxy) updateRtt(newRtt time.Duration) { diff --git a/plugin/forward/proxy.go b/plugin/forward/proxy.go index 55f285359..3271e7dd9 100644 --- a/plugin/forward/proxy.go +++ b/plugin/forward/proxy.go @@ -91,5 +91,7 @@ func (p *Proxy) start(duration time.Duration) { p.probe.Start(duration) } const ( dialTimeout = 4 * time.Second timeout = 2 * time.Second + maxTimeout = 2 * time.Second + minTimeout = 10 * time.Millisecond hcDuration = 500 * time.Millisecond )