fix: allow loopback relay in proxy config test - #146
Merged
Conversation
The SOCKS5-proxy-configuration integration test starts a TUIC server without overriding `experimental`, so the default drop_loopback / drop_private guards reject the 127.0.0.1 echo target before the ACL is consulted (crates/tuic-server/src/wind_adapter.rs). The relay chain has therefore never succeeded since the wind-based rewrite, but the failure was only soft-logged until 0cdb82a turned it into a hard assert, which broke CI (run 806+). Mirror the other integration tests (quiche_server_config / quinn_server_config) by setting drop_loopback/drop_private to false. Assisted-by: Reasonix:deepseek-v4-flash
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.
Summary
Fixes the CI failure in the
proxy_configintegration test (test_client_proxy_configuration) that has broken every test-running job since commit0cdb82a("tests: return error", run 806+), including the linked run 810.Root cause
The test starts a
tuic-serverwithout overridingexperimental.ExperimentalConfigdefaults todrop_loopback = true/drop_private = true(crates/tuic-server/src/config.rs), andTuicRouter::do_routerejects loopback/private targets before consulting the ACL (crates/tuic-server/src/wind_adapter.rs). So the server always refused to connect to the127.0.0.1echo server, the SOCKS5 relay chain never succeeded, and the check was silently soft-logged ("may be expected") until0cdb82aturned it into a hardassert!.All other integration tests (
quiche_server_config/quinn_server_configincrates/tuic-tests/src/lib.rs) explicitly setdrop_loopback: false, drop_private: false— this test was the lone outlier (its unusedExperimentalConfigimport, masked by#![allow(unused_imports)], hints the override was intended).Fix
Mirror the shared helpers: set
experimental: ExperimentalConfig { drop_loopback: false, drop_private: false }on the test's server config.Verification
55016ce) ✅ → run 806 (0cdb82a) ❌; the only behavioral change is this assert.i686-pc-windows-msvcandx86_64-pc-windows-msvc(quiche/BoringSSL included):Bi stream error: connection rejected: loopback address rejected: 127.0.0.1:...cargo +nightly fmt --all -- --checkpasses; diff is 7 insertions in one file.quinn_zero_rtt/concurrencytests locally; CI at run 805 was green on all platforms).Follow-up (not in scope)
tuic-client'srelay.proxy(SOCKS5 proxy for the client's QUIC connection) is parsed inconfig.rsbut never consumed — the client always connects directly, so this test exercises a plain relay chain rather than an actual proxied connection. Implementing the feature would be a separate change.Assisted-by: Reasonix:deepseek-v4-flash