Repository navigation
Resolve A/AAAA address families independently via AsyncDnsResolver - #20
Open
arturobernalg wants to merge 1 commit into
Open
arturobernalg wants to merge 1 commit into
arturobernalg wants to merge 1 commit into
Conversation
arturobernalg
force-pushed
the
happy-eyeballs-connection-racing
branch
2 times, most recently
from
November 10, 2026 20:57
61b0873 to
3d985dd
Compare
arturobernalg
force-pushed
the
happy-eyeballs-async-dns
branch
from
November 10, 2026 21:04
8742c42 to
570b1a2
Compare
arturobernalg
force-pushed
the
happy-eyeballs-connection-racing
branch
from
November 11, 2026 04:53
3d985dd to
1abc5cf
Compare
Optional AsyncDnsResolver SPI resolves A and AAAA independently and reports each as it arrives, instead of behind one blocking call. Racing starts on whichever family resolves first; if A arrives before AAAA, wait up to the RFC 8305 Resolution Delay (50ms) for AAAA before using A alone, interleaving both if AAAA does arrive in time. Late-arriving addresses are merged into the still-pending part of the race only: already-attempted addresses are left untouched, and the pending addresses are rebuilt by family and re-interleaved (Section 6, IPv6 first), rather than just appended after whatever was pending, which would queue a newly-preferred AAAA address behind an older, untried A address. Without an AsyncDnsResolver configured, behavior is unchanged: a plain DnsResolver can't honestly provide this (one blocking call can't split into independent per-family results), so it isn't asked to fake it.
arturobernalg
force-pushed
the
happy-eyeballs-async-dns
branch
from
November 11, 2026 04:57
570b1a2 to
7296a7f
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.
Resolves A and AAAA independently via an optional AsyncDnsResolver, racing whichever family arrives first.
Waits up to the RFC 8305 Resolution Delay (50ms) for AAAA if A arrives first, interleaving both if it does. Late addresses merge into the pending queue only, never touching an address already attempted.
Falls back to the plain DnsResolver when none is configured. Stacked on apache#935.