Commit Graph

46 Commits

Author SHA1 Message Date
Jordan Rose
79adaddd0b Adopt libsignal's "typed API" for username lookup 2025-09-08 18:24:33 -07:00
Max Radermacher
0ee384908e
NO MORE REST 2025-08-27 18:09:16 -05:00
Max Radermacher
b48560b6d0
Use the web socket immediately after registration 2025-08-25 16:32:07 -05:00
Max Radermacher
86e9ba1be6
Always use the web socket to test the proxy 2025-08-13 11:30:27 -05:00
Max Radermacher
f9415b9fec
Simplify connection state concurrency guarantees 2025-08-08 16:01:24 -05:00
Max Radermacher
ba5ff49c10
Clean up some auth/unauth socket distinctions 2025-08-08 15:31:00 -05:00
Max Radermacher
1482ef24f0
Remove shouldReconnectIfConnectedElsewhere 2025-07-25 12:44:10 -05:00
Max Radermacher
48af5c8c35
Use the web socket in the share extension 2025-07-22 08:48:14 -05:00
Max Radermacher
94b697d8ae
Don’t connect concurrently in multiple processes 2025-07-21 13:08:48 -05:00
kate-signal
33a8457599
Megaphone for inactive primary devices 2025-07-16 13:10:05 -07:00
Max Radermacher
8eff4b74d2 Add DispatchQueue-backed Monitor functions 2025-06-26 12:53:10 -05:00
Max Radermacher
851776fdaf
Check shouldSocketBeOpen when taking over from NSE 2025-06-24 16:38:14 -05:00
Max Radermacher
a2a49ebd5d
Allow both fetch mechanisms in a single process 2025-06-05 14:59:53 -05:00
Max Radermacher
9fb39dfa8f
Don’t reconnect if elsewhere’d in the background 2025-06-05 14:58:52 -05:00
Max Radermacher
8fddcee17b
Stop processing when the socket closes 2025-06-03 16:50:22 -05:00
Max Radermacher
1be1234460
Wait for disconnect before suspending 2025-06-03 13:48:27 -05:00
Max Radermacher
0b2fe0b8dc
Invert web socket state management paradigm 2025-06-03 00:50:57 -05:00
Max Radermacher
46bbcc4f05
Update connection state after re-warming caches 2025-06-02 15:25:16 -05:00
Max Radermacher
0a75ea88d5
Asyncify more OWSChatConnection logic 2025-05-30 02:29:16 -05:00
Max Radermacher
4a7c2265c3
Adjust connection keep-alives/reconnects/tokens 2025-05-30 02:25:51 -05:00
Max Radermacher
5c64d1fa0a
Remove OWSChatConnectionUsingSSKWebSocket 2025-05-30 02:13:48 -05:00
Max Radermacher
95c18efb2d
Consolidate TSRequest auth into a single type 2025-03-13 13:35:35 -05:00
Jordan Rose
46346d17d9 Revert "Mitigate unidentified connection assertion"
This reverts commit f93be49c1a
now that the libsignal bug has been addressed.
2025-03-12 16:09:26 -07:00
Max Radermacher
f93be49c1a
Mitigate unidentified connection assertion 2025-03-12 09:01:38 -05:00
Max Radermacher
265b45d6e1
Wait for the socket to open in more cases 2025-03-10 13:52:49 -05:00
Jordan Rose
14e4552633 Remove OWSChatConnectionWithLibSignalShadowing 2025-03-04 17:05:15 -08:00
Jordan Rose
1f6fea1a77 For now, don't pass system proxy settings to libsignal 2025-02-24 13:30:00 -08:00
Ehren Kret
0a5677997e
remove NSDate OWS objc category 2025-02-05 11:06:42 -06:00
Harry
ba2f10732e
Parametrize transaction type in DB v2 protocol 2024-10-04 16:12:52 -07:00
Ehren Kret
5ea36cd91b enable internal imports by default 2024-09-29 20:03:17 -05:00
Harry Sanabria
983f0445ca Pass AppReadiness instance to ChatConnectionManager and friends 2024-09-27 15:18:34 -07:00
Harry
fd0a34909e
Add non-global AppReadiness protocol + impl 2024-09-27 12:36:15 -07:00
Max Radermacher
ef678d2720
Keep the web socket open while on a call 2024-09-27 11:40:39 -05:00
Jordan Rose
9e72dcbb3d OWSChatConnection: Eliminate DependenciesBridge
The libsignal-based connections now have all dependencies passed in
explicitly; the classic and shadowing connections still have a few
GlobalDependencies, but those classes will be eliminated altogether in
the long term.
2024-09-19 10:25:36 -07:00
Max Radermacher
527280f78f
Use RemoteConfig as an instance type 2024-08-23 14:59:44 -05:00
Max Radermacher
46a3e9c58a
Extract cooperative timeout & cancellation logic 2024-08-12 13:46:37 -05:00
Jordan Rose
9a3377216d Update to libsignal 0.54.0
Includes code changes for libsignal splitting ChatService into
AuthenticatedChatService and UnauthenticatedChatService, which is more
in line with how iOS does things anyway. Also now supports receiving
stories on the auth connection using libsignal.
2024-07-26 17:16:56 -07:00
Max Radermacher
d8785da0b7
Don’t wait for the web socket in the NSE 2024-06-27 14:07:38 -05:00
Harry
bb083ca39c
Fold SignalCoreKit into SignalServiceKit
Co-authored-by: Adam Sharp <sharplet@signal.org>
2024-06-26 08:44:41 -07:00
Jordan Rose
54e4f752c9 Add OWSAuthConnectionUsingLibSignal
This is a *subclass* of OWSChatConnectionUsingLibSignal, mainly
because the authenticated/identified connection really does have
capabilities the unauth/unidentified one does not, and splitting those
out makes it easier to see which are which.

For now each websocket connection, identified and unidentified, has
its own libsignal ChatService instance, even though ChatService is
designed to manage both connections together. Later on in the
migration it'll make sense to consolidate them, but under the existing
structure of OWSChatConnection this is the easiest way to manage their
lifecycles.

Controlled by new RemoteConfig flag
"ios.experimentalTransportEnabled.libsignalAuth" (and for local
testing, UserDefaults flag UseLibsignalForIdentifiedWebsocket).
2024-06-20 15:42:00 -07:00
Jordan Rose
1661eb780b OWSChatConnectionUsingLibsignal: Add proxy support 2024-05-31 12:24:51 -07:00
Jordan Rose
401d55d751 OWSChatConnection: Handle TLS proxies for libsignal shadowing 2024-05-03 17:36:29 -07:00
Jordan Rose
4a0879eb78
Add OWSChatConnectionUsingLibsignal
The choice of whether or not to use this is controlled by a
RemoteConfig flag, ios.experimentalTransportEnabled.libsignal, but
because ChatConnectionManager is set up before RemoteConfig has even
loaded its cached settings, the flag is cached in UserDefaults, like
the shadowing kill switch setting.
2024-04-26 13:13:48 -07:00
Jordan Rose
4afddfe93d
Add a RemoteConfig flag to turn off libsignal unauth request shadowing
It's not likely we'll need this, but just in case.
2024-04-22 10:00:54 -07:00
Jordan Rose
e8eed60d35 Shadow successful unauth chat requests with a libsignal request
This will help identify scenarios where libsignal is deficient
compared to the current implementation.
2024-04-04 14:43:31 -07:00
Max Radermacher
e10faa8593
Remove src/ prefix from SignalServiceKit files 2024-03-27 12:22:52 -05:00