1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-07 12:43:32 +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)
if err != nil {
c.Error("parse incoming packet error: %v", err)
if err == packets.ErrSessionExpired {
if err == packets.ErrSessionExpired || err == packets.ErrPacketDropped {
break
}
errCount++

View File

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