Skip to content

IPv6 support (roadmap 1.4)#37

Merged
cvik merged 15 commits intomainfrom
tier1-ipv6-separate-responses
Mar 16, 2026
Merged

IPv6 support (roadmap 1.4)#37
cvik merged 15 commits intomainfrom
tier1-ipv6-separate-responses

Conversation

@cvik
Copy link
Owner

@cvik cvik commented Mar 16, 2026

Summary

Removes all IPv4-only hardcoding. Server and client auto-detect address family from bind/host address string.

Implementation

  • Io.zig: socket family from bind address, dual-stack IPV6_V6ONLY=0, family-aware decode_recv
  • Server.zig: sockaddr.in6 recv buffer, std.net.Address response storage, family-based msg_recv.namelen
  • Client.zig: removed AF_INET check, socket from parsed family
  • exchange.zig: family-aware FNV-1a hashing for addr_hash/peer_key
  • rate_limiter.zig: new AddrKey type replacing ip_addr: u32
  • DTLS Cookie + Session: fixed address truncation for IPv6
  • Bench: --ipv6 flag switches all scenarios to ::1/::

Test plan

  • All 120+ tests pass (including new IPv6 round-trip test)
  • IPv6 bench: --ipv6 --plain-only --non-only runs with 0 errors
  • IPv4 bench unchanged

@cvik cvik changed the title specs: IPv6 and separate responses design IPv6 support (roadmap 1.4) Mar 16, 2026
@cvik cvik merged commit e34980c into main Mar 16, 2026
1 check passed
@cvik cvik deleted the tier1-ipv6-separate-responses branch March 16, 2026 14:18
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.

1 participant