Skip to content

v0.2.1

Choose a tag to compare

@tmc tmc released this 16 Sep 04:44
· 69 commits to main since this release
v0.2.1
a35426d

Patch release. Nothing was removed and no exported signature changed.

iroh.ConnStats gained PTOs and SpuriousLosses. Adding fields to an exported struct breaks unkeyed composite literals; keyed literals are unaffected.

  • A wildcard-bound endpoint now replies from the address a peer's datagrams arrived at, not whichever address the route picks. They differ on a multi-homed host or behind a bridge or container network, where a QUIC peer receiving packets from an address it never dialed fails path validation.
  • Connect starts a handshake per dial target 250 ms apart and takes the first that completes, instead of walking them in turn. Unreachable direct addresses no longer cost a handshake timeout each before the relay path is tried.
  • Path selection re-runs once a hole punch succeeds. A relay-to-direct upgrade that took about five seconds now takes tens of milliseconds.

On Linux the receive path uses UDP_GRO. Nothing changes on the wire, and other platforms keep the per-packet loop.

Three loss-recovery fixes in the vendored internal/qng, each a case where a connection could stall on a timer that was never set. golang.org/x/crypto moved to v0.56.0, clearing three unreachable govulncheck advisories.

See COMPATIBILITY.md for the full detail.