From 55c26344160a16873602f56653c0b247f108f2b9 Mon Sep 17 00:00:00 2001 From: Alexander Alashkin <alexander.alashkin@cesanta.com> Date: Fri, 1 Apr 2016 16:03:54 +0100 Subject: [PATCH] Check listener when reusing UDP conn. Closes cesanta/dev#3139 PUBLISHED_FROM=f03f8fad30faee62f290d37b0b909ef49f301b80 --- mongoose.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mongoose.c b/mongoose.c index bc6afca74..81c6ee184 100644 --- a/mongoose.c +++ b/mongoose.c @@ -2698,7 +2698,9 @@ void mg_if_recv_udp_cb(struct mg_connection *nc, void *buf, int len, * This is very inefficient for long connection lists. */ for (nc = mg_next(lc->mgr, NULL); nc != NULL; nc = mg_next(lc->mgr, nc)) { - if (memcmp(&nc->sa.sa, &sa->sa, sa_len) == 0) break; + if (memcmp(&nc->sa.sa, &sa->sa, sa_len) == 0 && nc->listener == lc) { + break; + } } if (nc == NULL) { struct mg_add_sock_opts opts; -- GitLab