File-Tunnel/ft/Http
fiddyschmitt d52bcbd6a4 Add an HTTP CONNECT proxy (--http-proxy / --remote-http-proxy)
Mirror the SOCKS dynamic-forwarding path for clients that speak the HTTP
proxy protocol (curl -x, a browser's HTTPS-proxy setting). CONNECT method
only (HTTPS and any TCP tunnel); no authentication. Reuses the far-side
dialer and the ConnectResult accurate-reply plumbing verbatim, so the
200 / 502 / 504 reply is written only after the exit reports its dial
result and always before any relayed bytes.

New: ft/Http/HttpProxyNegotiator.cs (the CONNECT handshake decoder) and
ft/Listeners/HttpProxyServer.cs (a TCP-only clone of SocksServer), wired
through --http-proxy (local) / --remote-http-proxy (remote). Tests:
negotiator unit tests, hermetic end-to-end tests, and a four-proxy
rapid-request stress test (hundreds of concurrent CONNECTs over one
tunnel, unique-payload echo verified).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SjajJ7d3BhSZGfsMrGRS5S
2026-07-25 08:53:07 +10:00
..
HttpProxyNegotiator.cs Add an HTTP CONNECT proxy (--http-proxy / --remote-http-proxy) 2026-07-25 08:53:07 +10:00