Commit Graph
44 Commits
Author SHA1 Message Date
21pages 20d5019a42 fix: reduce noisy smithay client toolkit logs 2026-10-16 17:35:46 +08:00
21pages 423fb71085 fix: return local address for direct WebSocket connections 2026-10-14 20:04:48 +08:00
21pages 0ccaaf2cf6 fix: parse IPv6 HTTP proxy authorities correctly 2026-10-13 18:58:42 +08:00
21pages 2d998e7b02 fix: reuse the initial TCP connection for HTTPS proxies 2026-10-13 11:51:29 +08:00
21pages 4c04a7a130 fix: allow proxy reads while flushing is pending 2026-10-13 11:51:29 +08:00
21pages 19b8b2242d fix: always use configured proxy for WebSocket 2026-10-12 18:58:03 +08:00
21pages 9ee2f3ef9a fix: bracket IPv6 targets in HTTP CONNECT requests 2026-10-10 19:45:51 +08:00
21pages 3aade011c0 feat: add opt-in WebSocket proxy support
Support WS and WSS over SOCKS5, HTTP, and HTTPS proxies, including custom
ports. Use the configured proxy only when allow-websocket-proxy is enabled;
explicit proxy configuration takes precedence. Propagate proxy failures
without retrying a direct connection.

Add regression coverage for proxy routing, authentication, TLS, custom
ports, direct defaults, and failure handling.

Signed-off-by: 21pages <sunboeasy@gmail.com>

fix: flush WebSocket proxy tunnels before native TLS reads

Flush buffered HTTP and HTTPS tunnel writes before NativeTls reads so WSS handshakes can complete on macOS. Apply the adapter only to NativeTls WebSocket connections through HTTP or HTTPS proxies.

Extend the existing proxy round-trip test with HTTPS and SOCKS5 NativeTls cases. The websocket_proxy integration test passes in the rustdesk workspace.

Signed-off-by: 21pages <sunboeasy@gmail.com>

refactor: simplify WebSocket proxy configuration

Select the configured proxy inside WsFramedStream::new based on the WebSocket proxy option and remove the explicit proxy argument. Update the socket client and drop the unused Stream::connect_websocket wrapper.

Adapt integration tests to configured proxies and cover custom target ports and WebSocket close handling.
2026-10-10 11:50:09 +08:00
21pages 24aa2f6947 fix(logging): suppress hyper_util debug logs 2026-09-18 11:04:40 +08:00
21pages 219f917d5a fix(webrtc): make session cleanup deadlock-safe
Release data channel and session cache locks before awaiting close
  operations.

  Remove cached sessions by PeerConnection identity instead of SDP
  fingerprint so delayed callbacks cannot remove replacement sessions.

  Add regression tests for duplicate-session close re-entry and
  identity-based cleanup.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-08-30 19:45:17 +08:00
21pages 21fb4e30ae feat(config): add recording visibility and service save path options
- add hide-recording-button to local settings
  - add windows-service-video-save-directory to service settings

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-07-23 21:43:19 +08:00
21pages 91b13be6fd Add controlled context for controller audit attribution
Add ControlledContext to rendezvous messages so the server can pass a controller-user audit ref to the controlled client.

The controlled client returns the ref when posting audit logs, allowing the server to associate those logs with the controller user.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-06-26 14:16:56 +08:00
21pages f1889f6477 Improve WebSocket redirect error message
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-06-03 15:52:15 +08:00
21pages 24f430b384 option allow-command-line-settings-when-settings-disabled
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-05-28 11:44:41 +08:00
21pages 035c3198c8 option hide-stop-service
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-03-05 17:21:21 +08:00
21pages 13c4fb3f7d fix: invalidate key_pair cache instead of setting directly
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-02-14 12:48:15 +08:00
21pages 5d2acc7340 fix: improve machine_uid handling and add pk decryption fallback
- Cache machine_uid in get_uuid with retry logic for macOS
  - Fallback to pk decryption when machine_uid decryption fails
  - Add is_encrypted check to prevent duplicate encryption
  - Add get_existing_key_pair to get key pair without generating new one

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-02-14 11:11:03 +08:00
21pages de0d7fded0 update key pair when set config
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-01-29 20:26:00 +08:00
21pages e163e2d829 add three state control permissions
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-01-07 12:42:21 +08:00
21pages 510ebdca50 Revert "add ControlPermissions"
This reverts commit 178c97d59f.
2026-01-07 12:42:01 +08:00
21pages 178c97d59f add ControlPermissions
Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-01-05 22:13:56 +08:00
21pages 73ab9575fd add options: disable-change-permanent-password, disable-change-id, disable-unlock-pin
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-12-30 22:53:40 +08:00
21pages 3a0034f104 controlling strategy
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-12-29 14:08:43 +08:00
21pages af5227a537 support restore preset password except clear password
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-12-16 11:33:10 +08:00
21pages c0b279f80a local option allow-ask-for-note
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-11-13 11:06:17 +08:00
21pages 48042dd916 optioin edge-scroll-edge-thickness
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-11-06 18:35:26 +08:00
21pages 2d80f7a295 add function to get proxy username, password
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-10-30 14:04:31 +08:00
21pages b4ebe2ccbb remove a warning
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-10-30 13:44:35 +08:00
21pages bbc8e2f31a add mobile fallback platform verifier
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-10-30 13:13:04 +08:00
21pages bf9a79fda5 mobile wss use rustls_platform_verifier
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-10-27 10:29:26 +08:00
21pages a3ff483639 more preset options
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-09-26 11:04:46 +08:00
21pages 0d900a20ea remove can't save option
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-09-18 14:32:37 +08:00
21pages 44e8a46e94 Revert "ab default password"
This reverts commit f9e903b762.
2025-09-04 18:26:50 +08:00
21pages 3dbe437a8c Revert "remove support_controlling_salt field in Hash"
This reverts commit 11dba932e0.
2025-09-04 18:26:29 +08:00
21pages 11dba932e0 remove support_controlling_salt field in Hash
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-09-04 17:18:17 +08:00
21pages f9e903b762 ab default password
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-09-02 11:31:11 +08:00
21pages 0aae3499f6 add some missing keys
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-07-09 14:30:08 +08:00
21pages cbaaf6f75f fix sync socks from advanced options to config file
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-05-14 13:36:44 +08:00
21pages 585bd1f152 websocket
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-05-08 18:20:38 +08:00
21pages 2a35874424 option allow-d3d-render
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-12 11:50:11 +08:00
21pages 6338940d7a buildin option allow-https-21114
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-06 00:05:13 +08:00
21pages a8efd320e6 fix device group cache
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-02-14 16:46:49 +08:00
21pages 3515503203 option 'preset-device-group-name'
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-02-14 15:24:42 +08:00
21pages 49c6b24a7a init
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-20 16:06:27 +08:00