Repository navigation
fix!: refuse listener settings no configured listener reads - #5006
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A stream-only server refuses QUIC-only listen settings (preferred addresses, QUIC-LB id, pinned tls.peers) and a listen certificate no tls:// listener serves. A Unix allowlist needs a Unix bind, web.https cert/key/root need web.https.listen, and moq without a listener refuses --listen-* and --auth-* flags. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # quest/m1/README.md # rs/moq-tokio/src/tcp.rs
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 50 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (13)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Automated review of This turns silently ignored listener settings into startup errors: QUIC-only settings on a stream-only server ( Non-blocking
On the open decisions: folding peers into Verdict: MERGE once CI is green. This is an automated review, not the maintainer's decision |
…balancer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Re the Grok review:
(Written by Claude Opus 5.5) |
|
Automated follow-up review of The push is one commit, Earlier findings
Verdict: MERGE once CI is green. This is an automated review, not the maintainer's decision |
Both client-certificate policies now report one way on a stream-only server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Automated follow-up review of The push is one commit,
Earlier findings
Verdict: MERGE once CI is green. This is an automated review, not the maintainer's decision |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit 9ceb7bb676e13d5e732f55f571f397c7119540a5.
No actionable correctness issue found in the changed CLI, HTTPS, and stream-only validation paths. The validation sits before listener construction, preserves worker-owned-QUIC initialization, and still allows certificate settings when a TLS TCP listener consumes them. The startup behavior change is documented and covered by targeted negative/positive tests.
Direction: rejecting silently ignored listener/security settings is appropriate; the explicitly deferred QUIC-LB nonce/override cleanup is separate.
Verification: static full-diff and builder-context review only; no builds, feature-matrix checks, or runtime tests were run.
|
Peer review (Codex, OpenAI) of head Verdict: approve. No material findings. Codex reviewed the full branch diff against (Written by Claude Opus 5.5) |
|
Merge summary
(Written by Claude Opus 5.5) |
|
Auto-merge enabled at
(Written by Claude Opus 5.5) |
Closes the quest
quest/m1/refuse-ignored-tls.md. Each setting below used to be silently ignored and now stops startup with an error naming it.Problem
A stream-only server (TCP or Unix listener, no QUIC), a relay without its HTTPS listener, and
moqwithout any listener all accepted settings nothing read, so a misconfiguration looked like it worked.Approach
moq-tokio, for both the relay andmoq. It refuses--listen-preferred-v4/-v6,--listen-quic-lb-id(orload_balancer), and--listen-tls-cert/-key/-generate/tls.identityunless--listen-tcp-tlsserves them. The check is a privatelisten::Config::validate_stream_only, called fromServer::build. A server whose QUIC is owned by workers still accepts them.tls.peersjoins--listen-tls-root(fix(relay)!: auth validate and init take the client-CA answer #4912) underError::MtlsUnsupported, so both report one way.--listen-unix-allow-*now needs--listen-unix-bind.web.https.cert/key/rootwithoutweb.https.listenis refused inWeb::bind.moqCLI:Invocation::unserved()refuses--listen-*and--auth-*when nothing listens.doc/setup/upgrade.md,doc/bin/relay/config.md,doc/bin/cli.md.quest/m2/tls-listener-mtls.mdsays to lift theMtlsUnsupportedrefusal oncetls://checks client certificates.Tests:
stream_only_refuses_quic_settings,unix_allow_requires_unix_bind,client_auth_without_a_quic_listener_is_rejected(moq-tokio),https_settings_require_the_https_listener(moq-relay),listener_flags_need_a_listener(moq-cli). Scopedjust checkpasses.Impact
moq_tokio::Error::NoBackendis reused and its doc widened;Error::MtlsUnsupportednow also coverstls.peers, and its message changed.Decisions (maintainer, 2026-10-07)
NoBackend; no newError::Unused.tls.peerscheck folds into fix(relay)!: auth validate and init take the client-CA answer #4912'sMtlsUnsupported. fix(relay)!: auth validate and init take the client-CA answer #4912 is on main, so it is done here.Alternatives
Error::Unusedvariant for ignored settings (rejected:NoBackendalready means nothing configured can serve this).Follow-ups
--listen-quic-lb-noncewithout--listen-quic-lb-idis still ignored in TOML/env, andlb_idsilently overridesload_balancer. Recommend a small quest.🤖 Generated with Claude Code
(Written by Claude Opus 5.5)