v1.0-build180 — named server sets + security hardening
Named servers (builds 173-180)
- Settings now holds a list of named servers with one active at a time:
tap the circle to make a server active, tap its name to edit it. - Each server carries its own transport mode, proxy / TURN addresses,
WireGuard keys and connection settings. The VK call link and VK account
auth stay global and are shared by every server. - New / Copy / Delete in the server editor; the last remaining server
cannot be deleted. Your existing configuration migrates to "Server1"
on first launch, so nothing changes until you add a second server. - The main screen shows which server you are connected to, and the log
records the active server on launch, on switch and on connect. - Full Backup now stores every server plus the active one. Backups from
build 178 and earlier still import — they restore as a single "Server1".
Note that a backup exported by this build is NOT readable by older builds. - Importing a connection link (vkturnproxy:// / freeturn:// / wdtt://) now
ADDS a server and makes it active instead of overwriting your settings;
existing servers are kept. A freeturn:// server starts without WireGuard
keys — enter them in the editor. - quick_link.py emits serverName and can build a link from the new backup
format, including --server to pick a specific server.
Security hardening (build 172)
- Reject control characters in an imported allowedIPs / peerAddress before
they reach the WireGuard UAPI config, which could otherwise smuggle extra
directives such as a hidden second peer. - Validate the SRTP-WRAP-A provisioning address; a malformed one crashed
the tunnel extension on every connect. - Bound the VK captcha slider grid size taken from the server response,
which could otherwise force a multi-gigabyte allocation. - Sanitize the Wi-Fi SSID before it is written to the shared log, so a
crafted network name cannot forge log lines. - Reject non-finite expiry values in the cached TURN credentials, which
could crash the app on every connect after a tampered backup.