Expose the CONNECT-tunnel proxy mode in the GUI#32
Merged
Conversation
The engine gained a connect:// proxy scheme (xroche/httrack#596): it drives the proxy with CONNECT for every request, including plain HTTP, which is what CONNECT-only proxies such as Tor's HTTPTunnelPort require. The GUI had HTTP and SOCKS5 but no way to pick it. Add it as a third row of the existing proxy type dropdown, reusing the address/port/auth fields as the other two do, and map the row to its scheme in compute_options() -- the same shape the build dropdown already uses to map its rows onto non-contiguous engine codes. The row order is what fixes the stored value: the tunnel goes last so that the index keeps matching the code webhttrack's option10.html and existing profiles already use (0 = HTTP, 1 = SOCKS5, 2 = tunnel), and DDX_CBIndex keeps carrying it. An out-of-range code, from a hand-edited or newer profile, selects HTTP in the dialog and emits a plain HTTP proxy. HTTP remains the default, so the emitted command line is unchanged for existing projects. LANG_PROXYTYPETIP is reworded engine-side by the same PR to describe all three modes; no new LANG key is needed here. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
xroche
force-pushed
the
feature/gui-proxy-connect-tunnel
branch
from
July 16, 2026 15:58
6217055 to
437d0a4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Engine PR xroche/httrack#596 adds a
connect://proxy scheme: it drives the proxy with CONNECT for every request, plain HTTP included, so CONNECT-only proxies like Tor'sHTTPTunnelPortwork. The GUI's proxy type dropdown offered HTTP and SOCKS5, with no way to reach it.This adds it as a third row of that dropdown, reusing the same address/port/auth fields, and maps the row to its scheme in
compute_options()— the same shape the build dropdown atShell.cpp:653already uses to map its rows onto non-contiguous engine codes.The row order is doing real work. The selection is persisted as the
ProxyTypeprofile key and shares its numbering with webhttrack'soption10.html, where SOCKS5 is1and the tunnel is2. Putting the tunnel row last keeps the combobox index equal to that code, soDDX_CBIndexkeeps carrying it and existing profiles keep meaning what they meant. (The cost is that the dropdown lists the two HTTP modes non-adjacently, where webhttrack shows the tunnel in the middle — a cosmetic divergence, deliberately taken in exchange for not carrying a second index↔code mapping.)An out-of-range code — hand-edited profile, or one written by a future build — selects HTTP in the dialog and emits a plain HTTP proxy.
HTTP stays the default, so the emitted command line is unchanged for existing projects.
LANG_PROXYTYPETIPis reworded engine-side by #596 to describe all three modes, so no new LANG key is needed here.Engine-side dependency #596 is merged (2026-07-16). CI checks out httrack master with no pinned ref, so a rebuild picks it up.
Testing
CI builds the installer and smoke-runs the app (
--version, exit 0) — that proves it links and launches, nothing more. This repo has no test suite, and CI never opens the proxy dialog, writes a profile, or inspects the generated argv. The dropdown round-trip through a saved profile and a real mirror throughconnect://want a manual pass on the Win7 VM.🤖 Generated with Claude Code