Releases: mas-bandwidth/netcode
Releases Β· mas-bandwidth/netcode
v1.2.4-preview
This is a preview release. Please check it and let me know if you have any problems before we make an official release
What's Changed
- Preliminary support for DSCP packet tagging on Mac, Linux and Windows. Disabled by default. Enable with netcode_enable_packet_tagging before you create a client or server. Packet tagging can greatly reduce latency and jitter on Wi-Fi with modern Wi-Fi access points (Wi-Fi 6 or greater).
- Add address map for better client index looking up by @kienhg96 in #120
- Remove redundant MinGW
inet_ntop
andinet_pton
, fixINVALID_SOCKET
tautology by @cshenton in #122 - Fix duplicate error code value for GET_SOCKNAME_IPV6_FAILED by @dbechrd in #125
- Fix incorrect expected connection request packet length in error message by @dbechrd in #127
- Print warning when disabling SIO_UDP_CONNRESET fails. by @dbechrd in #124
- Run the keep_alive test by @dbechrd in #131
- Remove unnecessary code duplication in socket_connect tests by @dbechrd in #132
Stable Release
- Fix delayed packet receives on windows server when client socket gets shut down hard (ICMP UNREACHABLE -> WSAECONNRESET)
- Simplify building on windows by including cut down libsodium source
- Update to support intel and arm Macs
- Fix warnings
Security fix
This release includes a security fix for a vulnerability discovered in replay attack protection.
Without this fix, an attacker can craft a packet with high sequence number to a client or server, and stop all future packets in the connection from being received.
Please update to this release ASAP!
Feature requests
Changes in this release:
- Per-client timeouts can now be specified in the connect token
- Negative timeout values disable timeout (useful for debugging)
- Negative expire seconds disables token expiry (useful for debugging)
- Added netcode_client_get_port and netcode_server_get_port to get the bound socket ports when the bind address has port 0.
- Golang and Rust implementations have been moved out to their own repositories so they can have different release cycles.
- To implement per-client timeouts the code has been updated to NETCODE 1.01 spec.
Production Ready
This is the initial release of netcode.io
Features:
- Secure client connection based around connect tokens
- Challenge/response for protection against spoofed client IP headers
- Protection against being used in DDoS packet amplification attacks in request/response
- Encrypted and signed UDP packets once connection is established.
- Replay protection so attackers can't intercept and replay old packets.
- Support for user overrides for allocator, logging functions and assert function.
- Support for loopback client connections with server, for example for local client/server or singleplayer in Call of Duty, Titanfall style.
This code has been extensively unit tested, soak tested as well as having been successfully integrated into yojimbo for several months now.
netcode.io is now production ready!