From 7fef1b060ff07388cdd4fc9be3d2e08858aa16a6 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 28 Sep 2022 09:28:56 -0400 Subject: [PATCH] Add proxy support for CDSv2. --- .../java/org/thoughtcrime/securesms/util/FeatureFlags.java | 2 +- .../signalservice/api/services/CdsiSocket.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 24b2cd8fe6..a4d147196f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -104,7 +104,7 @@ public final class FeatureFlags { private static final String RECIPIENT_MERGE_V2 = "android.recipientMergeV2"; private static final String CDS_V2_LOAD_TEST = "android.cdsV2LoadTest"; private static final String SMS_EXPORTER = "android.sms.exporter"; - private static final String CDS_V2_COMPAT = "android.cdsV2Compat.3"; + private static final String CDS_V2_COMPAT = "android.cdsV2Compat.4"; public static final String STORIES_LOCALE = "android.stories.locale"; private static final String HIDE_CONTACTS = "android.hide.contacts"; diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java index 38393d4dac..964bf151ec 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java @@ -10,6 +10,8 @@ import org.signal.libsignal.protocol.util.Pair; import org.whispersystems.signalservice.api.push.TrustStore; import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; import org.whispersystems.signalservice.api.util.Tls12SocketFactory; +import org.whispersystems.signalservice.api.util.TlsProxySocketFactory; +import org.whispersystems.signalservice.internal.configuration.SignalProxy; import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager; import org.whispersystems.signalservice.internal.util.Hex; @@ -69,6 +71,11 @@ final class CdsiSocket { builder.addInterceptor(interceptor); } + if (configuration.getSignalProxy().isPresent()) { + SignalProxy proxy = configuration.getSignalProxy().get(); + builder.socketFactory(new TlsProxySocketFactory(proxy.getHost(), proxy.getPort(), configuration.getDns())); + } + this.okhttp = builder.build(); }