Skip to content

Implement a basic form of RFC 8305 ("happy eyeballs") for channels

eta requested to merge eta/arti:moderately-enthused-eyeballs into main

This makes Arti usable in IPv6-only environments (#92 (closed)) by letting us attempt multiple connections to a given relay using all of its addresses instead of just using the first (probably IPv4) one, using the strategy from RFC 8305 § 5.

This isn't a complete implementation of Happy Eyeballs; ideally, we'd sort the address list before doing concurrent connections. However, it works (and has been tested inside an IPv6-only container inside eta's network :p)

Merge request reports