github anton48/vk-turn-proxy-ios v1.0-build385
Names and WireGuard keys from links, a ghost network change that restarts nothing, and a stop during the start that counts as a stop

2 hours ago

LINKS. A wdtt:// or csqtt:// link may end in #name: the text after the
hash becomes the imported server's name (GitHub #81), percent-encoded or
raw, control and direction-override characters removed, up to 64
characters. A freeturn:// link's wg field — the client's WireGuard config
as free-turn's installer embeds it since its commit 9da2c8e (GitHub #86)
— fills the WireGuard keys, the tunnel address and the DNS servers, read
the way wg-quick reads a config: a comment may start anywhere on a line,
keys are case-insensitive, the last key wins, only the first [Peer]
counts; a DNS line's addresses become servers and its search domains are
named and ignored, as this app has no field for them. When the config is
an AmneziaWG one — free-turn's default install writes S1–S4,
HeaderProtectionKey and RandomTrailers — the confirmation says so and
warns that this app speaks plain WireGuard and will not connect to a
server that enforces them. The confirmation names what the link carried
and what it did not: keys, tunnel address, DNS, the VK call link; the
receipt shows the name the server actually got.

NETWORK CHANGE. The extension judges a path event by the network's
identity — status, interface, SSID — and skips flag-only flips (DNS,
expensive, IPv6). That identity is now seeded from the very first report,
which on most starts arrives before the tunnel's backend exists: until
now the first flag flip after such a start — a DNS flag toggling after a
wake, same Wi-Fi, same SSID, minutes later — counted as a network change
and restarted every session (fifty csqtt workers in one user's log, five
credential slots marked for ten minutes).

START AND STOP. The extension's two watchdog timers and its path-monitor
state were written from several threads; they sit behind a lock or on
one queue now. A stop that lands while the tunnel is still starting —
Disconnect during Connecting, whether in the bootstrap wait, the
settings apply or the attach — is reported as the stop's outcome rather
than as a backend failure, and every failure branch of the start runs
one full teardown either way, each step idempotent and shared with the
stop's, so the tunnel is turned off exactly once whichever side gets
there first. Two exports of the Go bridge with no caller since the split
startup are gone, and a test keeps the bridge's header equal to its
exports.

Client only — the server side is unchanged, so srtp-build306 remains
current.

Don't miss a new vk-turn-proxy-ios release

NewReleases is sending notifications on new releases.