Skip to content

Releases: mas-bandwidth/netcode

v1.2.4-preview

18 Sep 14:49
09391c6
Compare
Choose a tag to compare
v1.2.4-preview Pre-release
Pre-release

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 and inet_pton, fix INVALID_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

26 Dec 19:07
Compare
Choose a tag to compare
  • 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

17 Apr 22:09
Compare
Choose a tag to compare

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

16 Aug 16:26
Compare
Choose a tag to compare

Changes in this release:

  1. Per-client timeouts can now be specified in the connect token
  2. Negative timeout values disable timeout (useful for debugging)
  3. Negative expire seconds disables token expiry (useful for debugging)
  4. Added netcode_client_get_port and netcode_server_get_port to get the bound socket ports when the bind address has port 0.
  5. Golang and Rust implementations have been moved out to their own repositories so they can have different release cycles.
  6. To implement per-client timeouts the code has been updated to NETCODE 1.01 spec.

Production Ready

24 Jul 01:21
Compare
Choose a tag to compare

This is the initial release of netcode.io

Features:

  1. Secure client connection based around connect tokens
  2. Challenge/response for protection against spoofed client IP headers
  3. Protection against being used in DDoS packet amplification attacks in request/response
  4. Encrypted and signed UDP packets once connection is established.
  5. Replay protection so attackers can't intercept and replay old packets.
  6. Support for user overrides for allocator, logging functions and assert function.
  7. 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!