From 14379d1917291723037aa57c0d4c2a02768ad01d Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 5 Nov 2024 07:41:11 +0000 Subject: [PATCH] mqtt: fix MQTT client PINGREQ failure when using LIBUV as event driver. --- lib/roles/mqtt/ops-mqtt.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/roles/mqtt/ops-mqtt.c b/lib/roles/mqtt/ops-mqtt.c index ceac2f578..db53f7ed8 100644 --- a/lib/roles/mqtt/ops-mqtt.c +++ b/lib/roles/mqtt/ops-mqtt.c @@ -440,6 +440,11 @@ rops_issue_keepalive_mqtt(struct lws *wsi, int isvalid) } nwsi->mqtt->send_pingreq = 1; + +#if defined (LWS_WITH_LIBUV) + nwsi->mux_substream = 0; +#endif + lws_callback_on_writable(nwsi); return 0; @@ -562,6 +567,11 @@ rops_close_kill_connection_mqtt(struct lws *wsi, enum lws_close_status reason) lws_wsi_tag(wsi), lws_wsi_tag(wsi->mux.parent_wsi), wsi->mux.child_list); //lws_wsi_mux_dump_children(wsi); +#if defined(LWS_WITH_LIBUV) + struct lws *nwsi = lws_get_network_wsi(wsi); + if (nwsi->mux_substream == 0) + nwsi->mux_substream = 1; +#endif if (wsi->mux_substream #if defined(LWS_WITH_CLIENT)