Skip to content

feat: unit test on subgroup and tracks#156

Open
itzmanish wants to merge 21 commits into
cloudflare:mainfrom
itzmanish:integrity-tests
Open

feat: unit test on subgroup and tracks#156
itzmanish wants to merge 21 commits into
cloudflare:mainfrom
itzmanish:integrity-tests

Conversation

@itzmanish

Copy link
Copy Markdown
Contributor

No description provided.

github-actions Bot and others added 21 commits March 31, 2026 14:02
The relay-to-relay connection cache (RemotesState.lookup) was keyed by
URL only. Coordinator implementations that return the same URL for
different namespaces (e.g. scope-based URLs with per-host socket_addr
overrides) may see subscribes misrouted to a previously cached upstream
host instead of the host the coordinator identified.

Include the SocketAddr in the cache key so that different upstream hosts
get separate connections even when the coordinator returns the same URL.
Connection reuse is preserved for same-URL + same-host combinations,
which is correct since namespace identity is carried in MoQT SUBSCRIBE
messages, not the connection URL.
moq-rs CLI tools default to binding on [::]:0, which is IPv6-only on
macOS and Windows (unlike Linux where it's dual-stack by default).
Users hitting IPv4-only hosts get connection failures with no clear
indication of the cause.

Replace the default UdpSocket::bind with socket2-based binding that
explicitly sets IPV6_V6ONLY=false for cross-platform dual-stack
support. Detect dual-stack capability at runtime instead of using
a compile-time cfg!(target_os) assumption, and thread the result
through Config -> Endpoint -> Client for accurate address family
detection during DNS filtering.

Config::new() now returns Result instead of panicking on bind failure.
Args::load() falls back to 0.0.0.0:port with a warning if the default
IPv6 bind fails; explicitly provided bind addresses are not subject to
fallback.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants