From f0a109245b6a4106d03fb5e93ced76d85e66baf7 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 22 Aug 2022 13:59:35 -0400 Subject: [PATCH] Only fallback to unidentified socket when a auth error occurs. Fixes #12395 --- .../signalservice/api/SignalServiceMessageSender.java | 7 +++++-- .../whispersystems/signalservice/api/SignalWebSocket.java | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index e992423b92..73faa0b439 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -1775,8 +1775,11 @@ public class SignalServiceMessageSender { } catch (WebSocketUnavailableException e) { Log.i(TAG, "[sendMessage][" + timestamp + "] Unidentified pipe unavailable, falling back... (" + e.getClass().getSimpleName() + ": " + e.getMessage() + ")"); } catch (IOException e) { - Log.w(TAG, e); - Log.w(TAG, "[sendMessage][" + timestamp + "] Unidentified pipe failed, falling back..."); + Throwable cause = e; + if (e.getCause() != null) { + cause = e.getCause(); + } + Log.w(TAG, "[sendMessage][" + timestamp + "] Unidentified pipe failed, falling back... (" + cause.getClass().getSimpleName() + ": " + cause.getMessage() + ")"); } } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java index 5a98f3c4da..a113ac36b5 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java @@ -207,8 +207,7 @@ public final class SignalWebSocket { return request(requestMessage); } return Single.just(r); - }) - .onErrorResumeNext(t -> request(requestMessage)); + }); } catch (IOException e) { return Single.error(e); }