From 890dba3f5a82f75387f45781c6f6925a1d7895aa Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Fri, 9 Oct 2020 16:28:33 +0800 Subject: [PATCH] fix incoming packet error. --- client/client.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/client.go b/client/client.go index 3a7fb741..87ff4207 100644 --- a/client/client.go +++ b/client/client.go @@ -1076,6 +1076,7 @@ func (c *QQClient) sendAndWait(seq uint16, pkt []byte) (interface{}, error) { func (c *QQClient) netLoop() { reader := binary.NewNetworkReader(c.Conn) retry := 0 + errCount := 0 for c.Online { l, err := reader.ReadInt32() if err == io.EOF || err == io.ErrClosedPipe { @@ -1098,7 +1099,11 @@ func (c *QQClient) netLoop() { data, err := reader.ReadBytes(int(l) - 4) pkt, err := packets.ParseIncomingPacket(data, c.sigInfo.d2Key) if err != nil { - c.Error("parse incoming packer error: %v", err) + c.Error("parse incoming packet error: %v", err) + errCount++ + if errCount > 5 { + c.Online = false + } //log.Println("parse incoming packet error: " + err.Error()) continue } @@ -1110,6 +1115,7 @@ func (c *QQClient) netLoop() { continue } } + errCount = 0 retry = 0 c.Debug("rev pkt: %v seq: %v", pkt.CommandName, pkt.SequenceId) go func() {