From 2fc1ff68cf5b2c1b700b82c860a893a733a3bf87 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov <rojer@cesanta.com> Date: Mon, 28 Mar 2016 20:21:07 +0300 Subject: [PATCH] Fix receive on UDP connections Should only read on outgoing or listening "connections" PUBLISHED_FROM=e84ff26b899a5f29ddef29ad6c5ba1d18e76e4ad --- mongoose.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mongoose.c b/mongoose.c index dddbf0377..31ec44e14 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3786,7 +3786,10 @@ time_t mg_mgr_poll(struct mg_mgr *mgr, int timeout_ms) { int fd_flags = 0; if (nc->sock != INVALID_SOCKET) { if (num_ev > 0) { - fd_flags = (FD_ISSET(nc->sock, &read_set) ? _MG_F_FD_CAN_READ : 0) | + fd_flags = (FD_ISSET(nc->sock, &read_set) && + (!(nc->flags & MG_F_UDP) || nc->listener == NULL) + ? _MG_F_FD_CAN_READ + : 0) | (FD_ISSET(nc->sock, &write_set) ? _MG_F_FD_CAN_WRITE : 0) | (FD_ISSET(nc->sock, &err_set) ? _MG_F_FD_ERROR : 0); } -- GitLab