Native ICE client out of beta
P2P/ICE support is now enabled by default. The native ICE client has no external dependencies and only adds a small amount of additional code to the library. (vcpkg feature ice and cmake flag ENABLE_ICE to remove this)
The WebRTC client can still be enabled with the webrtc vcpkg feature or USE_WEBRTC cmake flag. See also k_ESteamNetworkingConfig_P2P_Transport_ICE_Implementation.
Changes:
- TURN support (RFC 5766). This enables P2P connectivity through symmetric NATs where STUN alone is not sufficient.
- IPv6 support
- Numerous bugfixes, better route selection, honor permitted candidate type option. (See
k_ESteamNetworkingConfig_P2P_Transport_ICE_Enable)
Other fixes and improvements
- SNP reliability fixes: stop-waiting logic and acknowledgment scheduling
- Fixed a bug decoding reliable message size
- Fixed endian handling issues
- Build fixes for MSVC, older Apple SDKs, and TSAN builds
- Replaced picojson dependency with vjson . This is only needed by the cert tool, which is not compiled by default.