From aa8cc4d4454faede90eb30010c70b4ee8de07c7a Mon Sep 17 00:00:00 2001 From: Alex Bakon Date: Tue, 18 Feb 2025 15:36:51 -0500 Subject: [PATCH] Pass proxy down to libsignal Net instance --- ts/textsecure/SocketManager.ts | 13 +++---------- ts/textsecure/WebAPI.ts | 4 ++++ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/ts/textsecure/SocketManager.ts b/ts/textsecure/SocketManager.ts index 95b86d76b62..2dac616a3c2 100644 --- a/ts/textsecure/SocketManager.ts +++ b/ts/textsecure/SocketManager.ts @@ -169,7 +169,7 @@ export class SocketManager extends EventListener { const useLibsignalTransport = window.Signal.RemoteConfig.isEnabled( 'desktop.experimentalTransport.enableAuth' - ) && this.#transportOption(proxyAgent) === TransportOption.Libsignal; + ) && this.#transportOption() === TransportOption.Libsignal; const process = useLibsignalTransport ? connectAuthenticatedLibsignal({ @@ -580,14 +580,7 @@ export class SocketManager extends EventListener { } } - #transportOption(proxyAgent: ProxyAgent | undefined): TransportOption { - const { hostname } = URL.parse(this.options.url); - - // transport experiment doesn't support proxy - if (proxyAgent || hostname == null || !hostname.endsWith('signal.org')) { - return TransportOption.Original; - } - + #transportOption(): TransportOption { // in staging, switch to using libsignal transport if (isStaging(this.options.version)) { return TransportOption.Libsignal; @@ -643,7 +636,7 @@ export class SocketManager extends EventListener { log.info('SocketManager: connecting unauthenticated socket'); - const transportOption = this.#transportOption(proxyAgent); + const transportOption = this.#transportOption(); log.info( `SocketManager: connecting unauthenticated socket, transport option [${transportOption}]` ); diff --git a/ts/textsecure/WebAPI.ts b/ts/textsecure/WebAPI.ts index e94e8fbd886..97e160cf640 100644 --- a/ts/textsecure/WebAPI.ts +++ b/ts/textsecure/WebAPI.ts @@ -1726,6 +1726,10 @@ export function initialize({ certificateAuthority ); libsignalNet.setIpv6Enabled(!disableIPv6); + if (proxyUrl) { + log.info('Setting libsignal proxy'); + libsignalNet.setProxyFromUrl(proxyUrl); + } // Thanks to function-hoisting, we can put this return statement before all of the // below function definitions.