Commit Graph

19 Commits

Author SHA1 Message Date
ospab 31f3fff187 fix: GUI, JNI SDK, and TUN handler audit fixes
ostp-gui:
- GUI-01: Config parsing now strips JSONC comments via json_comments
  crate, matching CLI behavior. Previously failed on any commented config.
- GUI-02: stop_tunnel now properly aborts the JoinHandle with a 2s
  timeout instead of silently dropping it.

ostp-jni (Android SDK):
- JNI-01: Replaced all .unwrap() calls in JNI functions with safe
  null_mut fallback. JNI functions must never panic.
- JNI-02: Added missing exclusions, multiplex, debug fields to
  Kotlin SDK Config.toNativeJson(). Without these, serde deserialization
  on the native side could fail or use wrong defaults.
- JNI-03: Replaced shutdown_background() with shutdown_timeout(3s)
  to allow proper task cleanup and port unbinding.
- JNI-04: Updated Kotlin log string matchers to match professionalized
  messages (Connection established, TUN tunnel established, etc.)

TUN handlers:
- TUN-01: Windows TUN cleanup guard now resets DNS via netsh. Previously
  the custom DNS server remained configured after disconnect, causing
  complete DNS resolution failure.
- Unified all remaining [ostp-client] log prefixes to [ostp] across
  wintun_handler.rs, linux_handler.rs, and proxy.rs.
2026-05-17 03:31:48 +03:00
ospab 8eb3fc72cb polish: professionalize all user-facing log output and UX
- Unified log prefix to [ostp] across all modules (was [OSTP Core],
  [ostp-server], [ostp-client], [client], [bridge])
- Removed informal/casual phrasing from all user-visible messages
- Startup messages are clean and concise (mode, server, status)
- Error messages are actionable without being alarming
- Essential server logs (client connect/disconnect) always visible
- Essential client logs (connection status, errors) always visible
- TUN tunnel messages consistent across Windows and Linux
- Removed noisy eprintln from UDP reader hot path
- Status format: [ostp] Status: Connected (rtt=12.3ms)
2026-05-17 03:26:15 +03:00
ospab 7424ccc0ff fix: resolve critical ARQ bugs causing Speedtest tunnel drops + docs overhaul
Critical fixes (6):
- protocol.rs: in_flight_count() now counts only retransmittable Data frames,
  not Ack/Nack control frames — eliminates false backpressure under load
- protocol.rs: NACK is now rate-limited to once per 30ms — prevents
  retransmission storm during normal UDP jitter
- protocol.rs: zombie frames exceeding max_retries+4 are evicted each tick —
  prevents unbounded memory growth and stale retransmits
- protocol.rs: Closing state now processes final in-flight packets instead
  of silently dropping them — prevents data loss at session teardown
- server/lib.rs: stream_tx changed from bounded(10000) to unbounded_channel —
  prevents TCP-reader collapse during Speedtest with 50+ streams
- bridge.rs: liveness timeout raised from 30s to 60s — prevents false
  reconnect during heavy Speedtest load

Medium fixes (8):
- protocol.rs: ACK range truncation preserves cumulative range (index 0)
- bridge.rs: Ping now uses send_datagram() for correct TURN wrapping
- dispatcher.rs: replay_cache hard-capped at 100k entries (DoS protection)
- dispatcher.rs: old addr cleaned from addr_to_session on roaming
- server/lib.rs: TCP connect_target() now has 10s timeout
- config.rs: TURN section parsed during hot-reload
- proxy.rs: HTTP header parsing uses 512-byte chunks instead of 1-byte reads
- proxy.rs: stream_id wrap-around skips active IDs to prevent collision
- runner.rs: is_essential_log matches actual log strings from bridge.rs

Other:
- kex.rs: clearly marked as dead PQ stub (not used by protocol)
- README.md + README.ru.md: complete rewrite with architecture diagram
- docs/en/specification.md: updated ARQ section with all new semantics
2026-05-17 03:20:50 +03:00
ospab ec35769b9f fix: implement non-blocking unbounded channels and clean stream reset on reconnect 2026-05-16 23:41:04 +03:00
ospab c26e63250c fix(win-tun): eliminate console window flashes and early SOCKS5 bind race conditions in tun2socks launcher 2026-05-15 22:37:33 +03:00
ospab b63979b014 feat: add custom DNS server & Exclusions config fields, simplify share link schema, introduce --links server helper 2026-05-15 22:17:55 +03:00
ospab d34a1dd29a fix: resolve asymmetric packet loss (zero upload) by enforcing strict MTU caps and reducing TUN interface MTU to 1300 to prevent UDP fragmentation on outbound traffic 2026-05-15 19:54:07 +03:00
ospab a3c8b3a750 fix: address final analysis issues including Nonce exhaustion, TUN pre-flight checks, dead code, and proper TURN channel framing. Also fix CI packaging of tun2socks 2026-05-15 19:23:50 +03:00
ospab 0f81140f06 feat: resolve flow control, tun crash route cleanup, log pollution, padding caps 2026-05-15 18:34:32 +03:00
ospab 6e35609f42 perf: accelerate protocol via low-latency ACK windows and suppress high-velocity console spam logs 2026-05-15 17:44:06 +03:00
ospab 6ae43a8f41 refactor: pre-package Wintun and tun2socks into archives via CI/CD and purge runtime downloader 2026-05-15 17:07:18 +03:00
ospab 5ee8d5a470 fix: prevent PowerShell Invoke-WebRequest hangs by disabling ProgressPreference 2026-05-15 16:56:10 +03:00
ospab da50d2f15f feat: autonomous self-downloading dependencies inside TUN OS drivers 2026-05-15 15:58:35 +03:00
ospab 22fb9bb3d3 feat: unified cross-platform TUN support (Linux + Windows Firewall dynamic bypass) 2026-05-15 15:54:37 +03:00
ospab 31d61de939 Fix: Add physical network bypass routing for primary DNS (1.1.1.1) in Wintun handler to prevent UDP-over-TCP DNS resolution deadlock. 2026-05-15 01:23:13 +03:00
ospab e5062465d6 Fix: Integrate multi-architecture Wintun zip extractor filtering and upgrade tun2socks to v2.6.0 using the provided working release endpoint. 2026-05-15 01:20:56 +03:00
ospab 1ab313b616 Fix: Overhaul Windows UAC elevation to preserve CWD and CLI arguments, preventing instant crash on relaunch; apply UseBasicParsing to fix background downloader hangs. 2026-05-15 01:09:15 +03:00
ospab 0b3ee775e4 Refactor: Fully overhaul TUN mode architecture. Replace stub with auto-downloading Go tun2socks daemon, inject dynamic Windows PowerShell routing tables with proxy IP exclusions, metrics and secure DNS resolver, and prune legacy wintun crate bindings. 2026-05-15 00:35:25 +03:00
ospab 1ebf01cc65 Initial public release: Ospab Stealth Transport Protocol v0.1.0 2026-05-14 21:41:54 +03:00