pub async fn gather(socks: &[UdpSocket], opts: &GatherOpts) -> GatheredExpand description
Work out every address a pilot could reach us on.
Mirrors the prototype’s gather_candidates: host candidates first (a LAN
address wins instantly on a shared network; global IPv6 has no NAT at
all), then an explicit router port mapping, then the STUN-reflexive
address — suppressed under symmetric NAT, where it can only waste a slot
in the pilot’s race. socks[0] must be the IPv4 socket QUIC will use.