Repository navigation
Releases: machinezone/IXWebSocket
Release list
Philippe V le Long
Philippe V le Long — named after the king of France featured in Maurice Druon's Les Rois maudits. This character has not been used for an earlier IXWebSocket release.
New features
- Native macOS TLS using Network.framework for HTTP and WebSocket clients and servers, including TLS 1.3, mutual TLS, and Apple certificate trust evaluation, without linking OpenSSL. Opt in with
USE_NETWORK_FRAMEWORK=ONormake -f makefile.dev ws_network_framework. Requires macOS 10.15+. (#615) - Server log callbacks expose errors occurring before a WebSocket connection is established. (#595)
- Close-on-exec support for listening and accepted sockets. (#604)
- Per-message deflate offers can omit the client/server window-bit parameters. (#599)
Fixes
- Prevent path traversal in the HTTP server's default file handler. (#608)
- Fix a shutdown race that could trigger an automatic reconnect and cause
WebSocket::stop()to block indefinitely. (#609) - Fix mbedTLS TLS 1.3 reads and Windows errno signaling. (#594)
- Release PSA crypto state during network-system teardown rather than per socket. (#613)
- Replace
ssize_twithstd::ptrdiff_tto avoid MSVC typedef clashes. (#597) - Correct shared-library soversion metadata and build warnings. (#607, #572)
- Align the runtime version header with the CMake project version.
Build and development
- Remove CMake FetchContent downloads; tools and tests use vendored dependencies. (#605)
- Use the preinstalled MinGW and Ninja toolchain in Windows CI. (#606)
The new native TLS backend remains opt-in. Secure Transport remains the default Apple backend. Custom cipher strings and adoption of existing BSD descriptors are not supported by the Network.framework backend; iOS/tvOS/watchOS builds are not enabled yet.
Full changelog: v12.0.1...v12.1.0
Louis X le Hutin
Louis X le Hutin — a roll-up of fixes since v12.0.0.
Fixes
- DNS: avoid the
AI_ADDRCONFIGnetlink path — fixes agetaddrinfo/netlinkSIGABRTcrash on numeric hosts and lets loopback names resolve when offline (#589, fixes #560 & #524) - TLS (OpenSSL): validate certificates correctly when the host is an IP-address literal, by matching
iPAddressSANs viaX509_VERIFY_PARAM_set1_ip_asc(#588, fixes #581) - Server: match the
Upgradeheader value case-insensitively per RFC 6455, and fixinsensitiveStringCompareequivalence (#584, fixes #583) - Server: close
_serverFdexactly once (#585) - Build (packaging): fix the installed/exported include directory and align the project version (#582)
- Build: mbedTLS 4.x compatibility — guard removed APIs behind version checks (#579)
- Build: fix unused-parameter warnings on macOS (#578)
Improvements
Blanche de Castille
Blanche de Castille was the mother of Saint Louis.
What's Changed
- IXSocketServer: memset() sock addr before bind by @awelzel in #553
- Fix spelling in comment: 'perpertually' → 'perpetually' by @yuzujr in #558
- IPv6 bracketed address not functional when used on client side Linux/macOS by @cosminpolifronie in #571
- Add support for LibreSSL by @SigmaTel71 in #569
- Fix SelectInterruptPipe::read() being called with fd -1 by @cosminpolifronie in #573
- Crypt32 -> crypt32 by @franciscod in #570
- Fix HTTP header value parsing: bounds check and robust trimming by @bsergean in #574
- Add timeout support to flushSendBuffer() by @awelzel in #575
New Contributors
- @yuzujr made their first contribution in #558
- @cosminpolifronie made their first contribution in #571
- @SigmaTel71 made their first contribution in #569
- @franciscod made their first contribution in #570
Full Changelog: v11.4.6...v12.0.0
Philippe le Hardi
What's Changed
- Add ping interval to constructor params for WebSocketServer by @dwymark-celestron in #497
- Fix MbedTLS disconnect handling. by @PaulWhitingS2 in #500
- Don't call close() on -1. by @CryptoManiac in #502
- Support URLs with no slash before the question mark by @giuspen in #507
- Fix bad version variable by @LunarWatcher in #510
- Initialize the PSA Crypto API if requested by @teejusb in #514
- Minor fixes for < 10.6 by @barracuda156 in #515
- IXSocket.h: add missing <sys/types.h> for macOS by @barracuda156 in #512
- Version check MbedTLS instead of introducing a new define when initializing PSA Crypto API by @teejusb in #516
- Fix memory leaks in SocketMbedTLS when closing. by @plmzod in #527
- Allow Host to be overridden in handshake headers by @gordonread in #530
- Fix: 'Content-Length' header check implicit cast by @Rodrick136 in #534
- Include cstdint for compatibility with GCC 15 by @pastalian in #538
- IXWebSocketTransport::setReadyState(): Run under lock by @awelzel in #540
- IXWebSocketTransport: Avoid bloating _rxbuf by @awelzel in #550
- Fix no callback when the server is disconnected on windows by @doufu3344 in #548
- Improve documentation and add an ios build script by @Sokkero in #549
New Contributors
- @dwymark-celestron made their first contribution in #497
- @PaulWhitingS2 made their first contribution in #500
- @giuspen made their first contribution in #507
- @teejusb made their first contribution in #514
- @barracuda156 made their first contribution in #515
- @plmzod made their first contribution in #527
- @gordonread made their first contribution in #530
- @Rodrick136 made their first contribution in #534
- @pastalian made their first contribution in #538
- @awelzel made their first contribution in #540
- @doufu3344 made their first contribution in #548
- @Sokkero made their first contribution in #549
Full Changelog: v11.4.5...v11.4.6
Saint Louis
What's Changed
- Fix error C2065: 'errorMsg': undeclared identifier by @Cheney-W in #471
- Fix server empty thread name by @lanthora in #478
- Fix MinGW build warning by @lanthora in #482
- Fix #286 - http response headers overwritten with request headers by @glenne in #483
- Fix hanging of WebSocket::stop() waiting for its thread to join by @dacap in #481
- Fix links & update info in README by @michaelfm1211 in #485
- allow building when cpp exceptions are disabled by @arenevier in #489
- Allow building without rtti by @arenevier in #487
- Fix for C++/WinRT compile issue by @rh101 in #493
- Update unittest_windows_gcc.yml by @bsergean in #494
New Contributors
- @glenne made their first contribution in #483
- @dacap made their first contribution in #481
- @michaelfm1211 made their first contribution in #485
- @arenevier made their first contribution in #489
- @rh101 made their first contribution in #493
Full Changelog: v11.4.4...v11.4.5
Maurice Druon
DNS memory leak
gcc 13 build fixes
Alain de Pareilles
Captain of the King's Archers
- Set shorter thread names
- BoringSSL fix with SNI (thanks @maxweisel)
- Websocket computed header is valid Base64 (thanks @rsmmr)
Jacques de Molay
Fix a vcpkg/cmake problem.
Philippe le Bel
Louis X le hutin
Louis X, the first son of Philippe le Bel, of Philip the fair.