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:
parent
61dd50e464
commit
a4131cdc07
@ -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++
|
||||||
|
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user