From f47fa9781b1cea3ffae203508e6945f22b0d1183 Mon Sep 17 00:00:00 2001 From: David Fifield Date: Fri, 20 Mar 2020 22:25:59 -0600 Subject: [PATCH] Increasing poll interval. --- dnstt-client/main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dnstt-client/main.go b/dnstt-client/main.go index 3eab46e..a098b7f 100644 --- a/dnstt-client/main.go +++ b/dnstt-client/main.go @@ -20,8 +20,10 @@ import ( ) const ( - idleTimeout = 10 * time.Minute - pollDelay = 5 * time.Second + idleTimeout = 10 * time.Minute + initPollDelay = 100 * time.Millisecond + maxPollDelay = 10 * time.Second + pollDelayMultiplier = 2.0 ) // A base32 encoding without padding. @@ -127,6 +129,7 @@ func (c *DNSPacketConn) send(p []byte, addr net.Addr) error { } func (c *DNSPacketConn) sendLoop(addr net.Addr) { + pollDelay := initPollDelay pollTimer := time.NewTimer(pollDelay) for { var p []byte @@ -139,8 +142,13 @@ func (c *DNSPacketConn) sendLoop(addr net.Addr) { if !pollTimer.Stop() { <-pollTimer.C } + pollDelay = initPollDelay case <-pollTimer.C: p = nil + pollDelay = time.Duration(float64(pollDelay) * pollDelayMultiplier) + if pollDelay > maxPollDelay { + pollDelay = maxPollDelay + } } pollTimer.Reset(pollDelay) err := c.send(p, addr)