From 0a421e598bb8352851f7b06aba12b785f258e8f0 Mon Sep 17 00:00:00 2001 From: Irine Sistiana <49315432+IrineSistiana@users.noreply.github.com> Date: Sat, 16 Jul 2022 21:18:59 +0800 Subject: [PATCH] transport: fixed zero lastReadTime --- pkg/upstream/transport/transport.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/upstream/transport/transport.go b/pkg/upstream/transport/transport.go index 959a54f3c..793b17e08 100644 --- a/pkg/upstream/transport/transport.go +++ b/pkg/upstream/transport/transport.go @@ -379,8 +379,13 @@ func (t *Transport) getPipelineConn() (conn *dnsConn, isNewConn bool, allocatedQ // connTooOld returns true if c's last read time is close to // its idle deadline. func (t *Transport) connTooOld(c *dnsConn) bool { - if ddl := t.idleTimeout() - connTooOldThreshold; ddl > 0 { - return c.getLastReadTime().Add(ddl).Before(time.Now()) + lrt := c.getLastReadTime() + if lrt.IsZero() { + return false + } + if tooOldTimeout := t.idleTimeout() - connTooOldThreshold; tooOldTimeout > 0 { + tooOldDdl := lrt.Add(tooOldTimeout) + return time.Now().After(tooOldDdl) } return false }