Files
therealaleph 29777ce5b2 v1.2.10: proxy Stop actually stops now (fix issue #99)
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.
2026-04-24 04:33:29 +03:00

1.6 KiB
Raw Permalink Blame History

• رفع مهم ‫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.