Skip to content

Add IPv6 transport support without changing existing IPv4 behavior#31

Open
Knogle wants to merge 10 commits intoopenmultiplayer:masterfrom
Knogle:clean/ipv6-upstream
Open

Add IPv6 transport support without changing existing IPv4 behavior#31
Knogle wants to merge 10 commits intoopenmultiplayer:masterfrom
Knogle:clean/ipv6-upstream

Conversation

@Knogle
Copy link

@Knogle Knogle commented Mar 6, 2026

This change adds IPv6 transport support to RakNet while keeping the existing IPv4 path intact.

The new work introduces dual-stack listen sockets, tracks the transport address used by each remote peer, and routes reliability, connection handling, secure handshake, and query handling through that transport-aware layer. It also adds a small set of probe/smoke-test tools for UDP, query, and OMP connection flows.

Compatibility

The IPv4 stack continues to work as before.

This PR is intended to extend transport support, not to change the established IPv4 behavior. Existing IPv4 traffic still follows the same path and existing functionality should continue to work without requiring changes from current users. In other words, this should have no functional impact on current IPv4-only deployments beyond the added IPv6 capability.

Included changes

  • add dual-stack listen socket support
  • track per-peer transport addresses
  • route reliability sends via transport addresses
  • dispatch connected IPv6 traffic by transport address
  • make connection request handling transport-aware
  • add IPv6 support for SAMP6 queries
  • make the secure handshake transport-aware
  • add UDP/query/connect probe tools for smoke testing

ToDo

The launcher also works fine so far as well as the server using this new RakNet stack, unfortunately i'm still working on a way to inject AF_INET6 as a receiving socket into samp.dll. Sending works already using a shim layer.

@Knogle
Copy link
Author

Knogle commented Mar 7, 2026

Ahoy, code is confirmed working now, got first successful IPv6 connection.

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