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