From 7d9371cd032b8ed440c8a58691fa3e7801d42632 Mon Sep 17 00:00:00 2001 From: mkwcat Date: Fri, 2 Feb 2024 14:58:20 -0500 Subject: [PATCH] QR2: Fourth attempt to fix this waker bug --- qr2/main.go | 3 --- qr2/message.go | 9 +++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/qr2/main.go b/qr2/main.go index 9a26696..68c82a4 100644 --- a/qr2/main.go +++ b/qr2/main.go @@ -127,9 +127,6 @@ func handleConnection(conn net.PacketConn, addr net.Addr, buffer []byte) { login.NeedsExploit = false } - mutex.Lock() - defer mutex.Unlock() - session.MessageAckWaker.Assert() return diff --git a/qr2/message.go b/qr2/message.go index 68f3fc7..2518b50 100644 --- a/qr2/message.go +++ b/qr2/message.go @@ -235,17 +235,17 @@ func SendClientMessage(senderIP string, destSearchID uint64, message []byte) { payload = append(payload, message...) receiver.MessageMutex.Lock() + defer receiver.MessageMutex.Unlock() + if receiver.Login == nil { - receiver.MessageMutex.Unlock() return } s := sleep.Sleeper{} + defer s.Done() - mutex.Lock() receiver.MessageAckWaker.Clear() s.AddWaker(receiver.MessageAckWaker) - mutex.Unlock() timeWaker := sleep.Waker{} s.AddWaker(&timeWaker) @@ -275,12 +275,9 @@ func SendClientMessage(senderIP string, destSearchID uint64, message []byte) { login.GPErrorCallback(login.ProfileID, "network_error") receiver.Login = nil } - - receiver.MessageMutex.Unlock() return default: - receiver.MessageMutex.Unlock() return } }