Fix a few random crashes when using libsignal-net.

This commit is contained in:
Cody Henthorne
2025-04-23 14:30:18 -04:00
parent 501e169210
commit 68f567b0b7
2 changed files with 7 additions and 3 deletions

View File

@@ -38,6 +38,7 @@ import org.signal.core.util.logging.Log;
import org.signal.core.util.logging.Scrubber;
import org.signal.core.util.tracing.Tracer;
import org.signal.glide.SignalGlideCodecs;
import org.signal.libsignal.net.ChatServiceException;
import org.signal.libsignal.protocol.logging.SignalProtocolLoggerProvider;
import org.signal.ringrtc.CallManager;
import org.thoughtcrime.securesms.apkupdate.ApkUpdateRefreshListener;
@@ -363,7 +364,7 @@ public class ApplicationContext extends Application implements AppForegroundObse
e = e.getCause();
}
if (wasWrapped && (e instanceof SocketException || e instanceof InterruptedException || e instanceof InterruptedIOException)) {
if (wasWrapped && (e instanceof SocketException || e instanceof InterruptedException || e instanceof InterruptedIOException || e instanceof ChatServiceException)) {
return;
}

View File

@@ -498,6 +498,7 @@ class LibSignalChatConnection(
}
}
@Throws(IOException::class)
override fun sendResponse(response: WebSocketResponseMessage) {
if (response.status == 200 && response.message.equals("OK")) {
ackSenderForInternalPseudoId[response.id]?.send() ?: Log.w(TAG, "$name [sendResponse] Silently dropped response without available ackSend {id: ${response.id}}")
@@ -554,8 +555,10 @@ class LibSignalChatConnection(
else -> disconnectReason
}
for (pendingResponse in pendingResponses) {
pendingResponse.onError(downstreamThrowable)
synchronized(pendingResponses) {
for (pendingResponse in pendingResponses) {
pendingResponse.onError(downstreamThrowable)
}
}
}
chatConnection = null