From a1bf3d93b2865f28867160698bded8f30d929694 Mon Sep 17 00:00:00 2001 From: gerdstolpmann Date: Thu, 16 Apr 2020 04:33:17 +0200 Subject: [PATCH] only set a read deadline when the keep-alive value is positive (#83) --- broker/client.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/broker/client.go b/broker/client.go index c3cc96d..7d2d714 100644 --- a/broker/client.go +++ b/broker/client.go @@ -121,14 +121,16 @@ func (c *client) readLoop() { return default: //add read timeout - if err := nc.SetReadDeadline(time.Now().Add(timeOut)); err != nil { - log.Error("set read timeout error: ", zap.Error(err), zap.String("ClientID", c.info.clientID)) - msg := &Message{ - client: c, - packet: DisconnectdPacket, + if keepAlive > 0 { + if err := nc.SetReadDeadline(time.Now().Add(timeOut)); err != nil { + log.Error("set read timeout error: ", zap.Error(err), zap.String("ClientID", c.info.clientID)) + msg := &Message{ + client: c, + packet: DisconnectdPacket, + } + b.SubmitWork(c.info.clientID, msg) + return } - b.SubmitWork(c.info.clientID, msg) - return } packet, err := packets.ReadPacket(nc)