mirror of
https://github.com/therealaleph/MasterHttpRelayVPN-RUST.git
synced 2026-05-17 21:24:48 +03:00
29777ce5b2
Single-focus release. The Stop button in the UI previously only
stopped new connections from being accepted — in-flight clients kept
running on the old DomainFronter, which meant:
- Pages kept loading after Stop (users thought they'd stopped)
- Auth-key changes didn't take effect for domains with a live
keep-alive to the proxy
- Apps Script quota could still be consumed post-Stop
Fix (7338e76): wrap per-client spawns in a tokio::task::JoinSet
inside each accept loop. On shutdown, aborting the accept task drops
the JoinSet, which aborts every in-flight client. Sockets close,
the old fronter's TLS pool drops, and a subsequent Start builds a
clean new state.
Finding 1 of #99 (quota-exceeded → "timeout" instead of the real
502 body) is a separate pool-staleness issue and is NOT addressed
in this release.
1.6 KiB
1.6 KiB
• رفع مهم Stop که واقعاً متوقف نمیکرد (issue #99): قبلاً وقتی در UI Stop میزدید، فقط accept loop متوقف میشد ولی کلاینتهای در حال اجرا با DomainFronter قدیمی ادامه میدادن. نتیجه: ۱) صفحهها همچنان بارگذاری میشدن، ۲) تغییر auth_key و Start مجدد برای دامنههایی که keep-alive فعال داشتن بیتأثیر بود، ۳) quota Apps Script بعد از Stop همچنان مصرف میشد. حالا تکتک تسکهای کلاینت در یک JoinSet ردیابی میشن که روی shutdown همشون abort میشن — DomainFronter drop میشه، socketها بسته میشن، pool TLS پاک میشه
• Important fix for "Stop didn't actually stop" (issue #99): previously hitting Stop in the UI only aborted the accept loops, while per-client tasks kept running with their captured Arc of the old DomainFronter. User-visible effects: (1) requests kept succeeding after Stop, (2) changing auth_key + Start had no effect on domains with a live keep-alive to the proxy, (3) Apps Script quota could still be consumed after Stop. Per-client tasks are now tracked in a JoinSet that's dropped on shutdown, aborting every in-flight request — sockets close, the old fronter's TLS pool is dropped, and a subsequent Start picks up the fresh config cleanly.