Files
MasterHttpRelayVPN-RUST/docs/changelog/v1.2.9.md
T
therealaleph 1d2eb19295 v1.2.9: fix UI build for youtube_via_relay (v1.2.8 CI abandoned)
v1.2.8 tagged cleanly but CI failed compiling mhrv-rs-ui with:

  error[E0063]: missing field `youtube_via_relay` in initializer of
  `mhrv_rs::config::Config`

When I added the youtube_via_relay field to the main Config struct
in 09f1f5f, I missed the struct-literal construction in src/bin/ui.rs
(FormState::save_to_config) and the ConfigWire serializer.

Fixed here:

- Added youtube_via_relay field to FormState (line 214), read path
  (line 291), default path (line 316), and the save path (line 451)
- Added youtube_via_relay field to ConfigWire (line 493) with
  skip_serializing_if on false, plus its From impl (line 544)

UI still doesn't expose a checkbox for the toggle — it's config-only
for now, same treatment as normalize_x_graphql. A future PR can add
the checkbox to the Advanced pane.

v1.2.8 tag exists but has no GitHub Release (release job skipped
on failure); v1.2.9 is the clean cut. Same payload as v1.2.8 plus
this fix.
2026-04-24 02:16:32 +03:00

3.8 KiB
Raw Blame History

• رفع نشت ‫IP واقعی (issue #104): فیلتر هدرهای ‫forwarded در مسیر Apps Script‬ گسترش یافت تا همهٔ هدرهای هویت‌افشاگر (X-Forwarded-For, X-Real-IP, Forwarded, Via, CF-Connecting-IP, True-Client-IP, Fastly-Client-IP، و ۱۰ مورد دیگر) را قبل از ارسال به ‫Apps Script‬ حذف کند. اگر کاربر پشت یک پروکسی محلی (xray/v2rayNG) یا extension‬ مرورگر باشد که این هدرها را اضافه می‌کند، ‫IP‬ واقعی از طریق مسیر ‫relay‬ به سرور مقصد نشت نمی‌کند • گزینهٔ ‫youtube_via_relay (issue #102): پورت شده از ‫Python‬ بالادست. وقتی فعال شود، ترافیک یوتیوب از مسیر ‫SNI-rewrite‬ خارج می‌شود و از طریق ‫Apps Script‬ می‌رود تا فیلتر SafeSearch-on-SNI گوگل دور زده شود. ترید-آف: ‫User-Agent‬ ثابت می‌شود روی Google-Apps-Script و سهمیهٔ روزانهٔ شما مصرف می‌شود. پیش‌فرض خاموش • رفع دستور scan-sni (PR #97): پاسخ‌های dns.google با Transfer-Encoding: chunked برمی‌گردند و قبل از JSON decode باید unchunk‬ شوند. بدون این پچ هیچ دامنه‌ای کشف نمی‌شد • اعتبارسنجی ‫TLS‬ در scan-sni (PR #98): درخواست DoH به dns.google از NoVerify به webpki roots سوئیچ شد تا یک ‫on-path MITM‬ نتواند ‫PTR‬های جعلی برگرداند و pool ‫SNI‬ را مسموم کند • رفع کامپایل ‫UI‬ برای ‫youtube_via_relay‬: اضافه کردن فیلد به ‫FormState و ConfigWire در src/bin/ui.rs که v1.2.8‬ در ‫CI‬ سقوط کرده بود چون در ‫mhrv-rs-ui‬ فراموش شده بود

• Real-IP leak fix (issue #104): extended the forwarded-headers filter in the Apps Script relay path to strip every identity-revealing header (X-Forwarded-For, X-Real-IP, Forwarded, Via, CF-Connecting-IP, True-Client-IP, Fastly-Client-IP and 10 more) before we ship the request to Apps Script. If a user sits behind a local proxy (xray/v2rayNG) or a browser extension that inserts any of these, the real IP no longer leaks through the relay path to the origin • youtube_via_relay config toggle (issue #102): ported from upstream Python. When enabled, YouTube traffic opts out of the SNI-rewrite tunnel and goes through Apps Script instead, bypassing Google's SafeSearch-on-SNI filter that sometimes marks normal videos as "restricted." Trade-off: adds the fixed Google-Apps-Script User-Agent and counts YouTube against your daily quota. Off by default • scan-sni chunked-DoH fix (PR #97): dns.google replies with Transfer-Encoding: chunked; the raw payload was going to serde_json with chunk framing still embedded, so every PTR parse failed and scan-sni discovered nothing. Proper HTTP-body parsing now (chunked + Content-Length), plus unit tests • scan-sni TLS verification (PR #98): the DoH client to dns.google was using NoVerify — an on-path MITM could forge PTR answers and poison the discovered SNI pool. Switched to the normal webpki root store; the rest of the scan flow is unchanged • UI build fix for youtube_via_relay: the new config field was added to Config but not propagated to FormState / ConfigWire in src/bin/ui.rs, so v1.2.8's CI failed compiling mhrv-rs-ui with missing field youtube_via_relay in initializer of Config. v1.2.8 tag exists but no Release assets — v1.2.9 is the clean cut.