webrtc: decode TURN userinfo before handing it to the ICE agent

`Url` returns the username and password percent-encoded, and they went
into the ICE server configuration as-is, so a password containing `@`,
`/`, `?`, `#`, `%` or a space (written encoded, the only way the URL can
carry it) failed the long-term credential check with a 401 and TURN
never produced a relay candidate. Decode both, as the web client does.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JXJJGEGdgu26wgCppvUXdZ
This commit is contained in:
rustdeskandClaude Fable 5.1 committed 2026-09-04 23:34:08 +08:00
1 parent 846daf86f0
commit 00f0a720b5
2 files changed
+18 -2

No files matched your search

+1
View File
@@ -52,6 +52,7 @@ thiserror = "1.0"
httparse = "1.10"
base64 = "0.22"
url = "2.5"
percent-encoding = "2"
sha2 = "0.10"
whoami = "1.5"