From efb09624c5507043a04f34b8d5210e31ca0ce168 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Sat, 7 Feb 2026 22:34:24 +0000 Subject: [PATCH] kqueue: Fix libwebsockets event generation --- src/mux_kqueue.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/mux_kqueue.c b/src/mux_kqueue.c index 512f15f8..e0465dff 100644 --- a/src/mux_kqueue.c +++ b/src/mux_kqueue.c @@ -231,8 +231,20 @@ static void loop_handle_reads_writes(struct mosquitto *context, short event) if(context->wsi){ struct lws_pollfd wspoll; wspoll.fd = context->sock; - wspoll.events = (int16_t)context->events; - wspoll.revents = (int16_t)events; + int16_t lws_events; + switch(event){ + case EVFILT_READ: + lws_events = LWS_POLLIN; + break; + case EVFILT_WRITE: + lws_events = LWS_POLLOUT; + break; + default: + lws_events = LWS_POLLHUP; + break; + } + wspoll.events = lws_events; + wspoll.revents = lws_events; lws_service_fd(lws_get_context(context->wsi), &wspoll); return; }