aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/forward/connect.go8
-rw-r--r--plugin/forward/proxy.go2
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
)