ostp/ostp-flutter/lib/ui
ospab 7473278cc2 fix(client): bound the UoT connect; green aura + self-updating ping on mobile
UoT took 20-30s (sometimes 1-2 min) to come up on mobile. The TCP connect
had no timeout, so it inherited the kernel's SYN retry budget. Callers
resolve every address for the server and deliberately try IPv6 first
(perform_handshake_with_id sorts is_ipv6 to the front); a mobile network
that advertises IPv6 without a working route blackholes the SYN instead of
rejecting it, so the client sat through that entire budget before reaching
the IPv4 address that would have connected immediately. UDP never showed
this because connect() on a UDP socket just sets the default peer and
returns.

Capped at 4s per address, so a blackholed candidate costs seconds and the
next one is tried. Left the IPv6-first ordering alone: it is what makes
IPv6-only and NAT64 networks work, and with the cap its worst case is now
bounded. (A further win would be remembering which family last succeeded
and trying that first, removing even those 4s — not done here.)

Also, per the earlier UI requests:
- The connected state drew its aura, ring, icon and status dot from the
  theme's `secondary`, which is #AAAAAA and reads as plain white, giving no
  confirmation the tunnel was actually up. Now green, reusing the green
  already used for a healthy ping so "green = good" stays consistent.
  Applied at the call sites rather than to the theme, since `secondary`
  also paints routing toggles, the download metric and settings switches.
- Ping now updates itself from the metrics stream that was already
  arriving, instead of needing the "Test Ping" button, and is rendered as a
  compact icon + value.
2026-07-29 20:06:07 +03:00
..
app_routing_screen.dart fix(flutter): declutter profile editor, fix contrast bugs, unblock app list 2026-07-10 00:45:30 +03:00
home_screen.dart fix(client): bound the UoT connect; green aura + self-updating ping on mobile 2026-07-29 20:06:07 +03:00
logs_screen.dart feat: implement built-in DNS server, adblock and dns leak prevention 2026-06-07 19:55:42 +03:00
qr_scanner_screen.dart feat: implement built-in DNS server, adblock and dns leak prevention 2026-06-07 19:55:42 +03:00
settings_screen.dart fix(flutter): show Junk/TCP-Frag controls only when transport is UoT 2026-07-12 02:04:09 +03:00