- Fix unit test SIGSEGV on macOS: call MqttProps_Init/ShutDown for v5
static property pool semaphore initialization
- Use xfer instead of client->write.len for tx_buf clearing (write.len
is zeroed by MqttWriteStop before the XMEMSET)
- Free decoded v5 props in roundtrip test to prevent pool exhaustion
- Remove unused T24_PLUS_RC/T24_HASH_RC variables in broker.test
- Change TLS credential warning guard from WOLFMQTT_DEBUG_CLIENT to
DEBUG_WOLFMQTT for broader coverage
generate_port previously produced ports in [49152, 65535), which
overlaps ~72% of the Linux default ephemeral port range (32768-60999).
Under CI load the generated port could already be in use, causing
bind() to fail with EADDRINUSE and the broker to exit silently.
Dual-port tests (10a/10b/10c) needed two simultaneous free ports,
doubling the exposure.
Changes:
- generate_port: use od -tu2 (unsigned decimal) and range [15000,32000)
which is safely below both Linux and macOS ephemeral ranges
- check_broker: emit a WARNING when the broker does not become ready
within the timeout, so failures are visible rather than silent
- start_broker / start_broker_dual: redirect broker output to a named
log file in TMP_DIR so the CI "Show logs on failure" step captures
the broker's error messages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add two new matrix entries to broker-check.yml for testing the broker
with WebSocket support: plain WebSocket and WebSocket + TLS. Installs
libwebsockets-dev and configures wolfSSL with --enable-opensslcoexist
for system lws compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add server-side WebSocket support via libwebsockets, allowing
MQTT-over-WebSocket clients to connect alongside regular TCP clients.
The broker listens on two ports simultaneously (TCP and WebSocket)
with per-client rx/tx buffers bridging the lws push-based callback
model to the broker's pull-based polling model.
- Add BrokerWsCtx per-client context and WebSocket fields to MqttBroker
- Add lws server callback, WS-specific MqttNet read/write/disconnect
- Add BrokerClient_AddWs for WebSocket client initialization
- Add -w <port> CLI option to enable WebSocket listening
- Add local TLS IO callbacks when both WebSocket and TLS are enabled
- Fix wolfSSL/OpenSSL header conflict in net_libwebsockets.c client
- Link libwebsockets for broker when BUILD_WEBSOCKET is enabled
- Add WebSocket test case to broker.test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix to make sure ctrl+c is honored during a want read/write case.
* Fix the firmware update example to properly synchronize publish and use a unique topic name.
* Improve multi-thread test message to use larger size (> tx but) and in test mode check for actual message.
* Improve remote test done logic.
* Only run GitHub CI for PR's, not local push.
* Properly set `WOLFMQTT_NO_EXTERNAL_BROKER_TESTS` for each test.
* Use cat for logs, not more.