1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-08 04:55:56 +08:00

fix packet dropped.

This commit is contained in:
Mrs4s 2020-11-08 20:23:53 +08:00
parent 61dd50e464
commit a4131cdc07
2 changed files with 3 additions and 2 deletions

View File

@ -1053,7 +1053,7 @@ func (c *QQClient) netLoop() {
pkt, err := packets.ParseIncomingPacket(data, c.sigInfo.d2Key) pkt, err := packets.ParseIncomingPacket(data, c.sigInfo.d2Key)
if err != nil { if err != nil {
c.Error("parse incoming packet error: %v", err) c.Error("parse incoming packet error: %v", err)
if err == packets.ErrSessionExpired { if err == packets.ErrSessionExpired || err == packets.ErrPacketDropped {
break break
} }
errCount++ errCount++

View File

@ -11,6 +11,7 @@ var ErrUnknownFlag = errors.New("unknown flag")
var ErrInvalidPayload = errors.New("invalid payload") var ErrInvalidPayload = errors.New("invalid payload")
var ErrDecryptFailed = errors.New("decrypt failed") var ErrDecryptFailed = errors.New("decrypt failed")
var ErrSessionExpired = errors.New("session expired") var ErrSessionExpired = errors.New("session expired")
var ErrPacketDropped = errors.New("packet dropped")
type ISendingPacket interface { type ISendingPacket interface {
CommandId() uint16 CommandId() uint16
@ -121,7 +122,7 @@ func ParseIncomingPacket(payload, d2key []byte) (*IncomingPacket, error) {
func parseSsoFrame(payload []byte, flag2 byte) (*IncomingPacket, error) { func parseSsoFrame(payload []byte, flag2 byte) (*IncomingPacket, error) {
reader := binary.NewReader(payload) reader := binary.NewReader(payload)
if reader.ReadInt32()-4 > int32(reader.Len()) { if reader.ReadInt32()-4 > int32(reader.Len()) {
return nil, errors.New("dropped") return nil, ErrPacketDropped
} }
seqId := reader.ReadInt32() seqId := reader.ReadInt32()
retCode := reader.ReadInt32() retCode := reader.ReadInt32()