From b621166549e83b5765e35c02e25dc97516ad99a5 Mon Sep 17 00:00:00 2001 From: "lizheng.lz1998" Date: Sat, 17 Oct 2020 17:34:00 +0800 Subject: [PATCH] fix login --- client/client.go | 12 ++++++------ client/decoders.go | 12 ++++-------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/client/client.go b/client/client.go index a3da7088..15678373 100644 --- a/client/client.go +++ b/client/client.go @@ -955,9 +955,9 @@ func (c *QQClient) connect() error { } func (c *QQClient) Disconnect() { - if c.Online { - c.Online = false - c.Conn.Close() + c.Online = false + if c.Conn != nil { + _ = c.Conn.Close() } } @@ -1045,7 +1045,7 @@ func (c *QQClient) netLoop() { reader := binary.NewNetworkReader(c.Conn) retry := 0 errCount := 0 - for c.Online { + for { l, err := reader.ReadInt32() if err == io.EOF || err == io.ErrClosedPipe { c.Error("connection dropped by server: %v", err) @@ -1060,7 +1060,7 @@ func (c *QQClient) netLoop() { retry++ time.Sleep(time.Second * 3) if retry > 10 { - c.Online = false + break } continue } @@ -1070,7 +1070,7 @@ func (c *QQClient) netLoop() { c.Error("parse incoming packet error: %v", err) errCount++ if errCount > 5 { - c.Online = false + break } //log.Println("parse incoming packet error: " + err.Error()) continue diff --git a/client/decoders.go b/client/decoders.go index f91fe918..99061216 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -1020,19 +1020,15 @@ func decodeForceOfflinePacket(c *QQClient, _ uint16, payload []byte) (interface{ data.ReadFrom(jce.NewJceReader(request.SBuffer)) r := jce.NewJceReader(data.Map["req_PushForceOffline"]["PushNotifyPack.RequestPushForceOffline"][1:]) tips := r.ReadString(2) - if c.Online { - c.lastLostMsg = tips - c.Online = false - } + c.lastLostMsg = tips + c.Online = false return nil, nil } // StatSvc.ReqMSFOffline func decodeMSFOfflinePacket(c *QQClient, _ uint16, _ []byte) (interface{}, error) { - if c.Online { - c.lastLostMsg = "服务器端强制下线." - c.Online = false - } + c.lastLostMsg = "服务器端强制下线." + c.Online = false return nil, nil }