diff --git a/mongoose.c b/mongoose.c index f466be92..17c2fb28 100644 --- a/mongoose.c +++ b/mongoose.c @@ -9976,7 +9976,7 @@ static void onstatechange(struct mg_tcpip_if *ifp) { if (ifp->is_ip_changed) { struct mg_connection *c; for (c = ifp->mgr->conns; c != NULL; c = c->next) { - if (!c->is_listening && !c->is_udp) c->is_closing = 1; + if (!c->is_listening && !c->is_udp && !c->loc.is_ip6) c->is_closing = 1; } ifp->is_ip_changed = false; } @@ -10696,7 +10696,7 @@ static void onstate6change(struct mg_tcpip_if *ifp) { if (ifp->is_ip6_changed) { struct mg_connection *c; for (c = ifp->mgr->conns; c != NULL; c = c->next) { - if (!c->is_listening && !c->is_udp) c->is_closing = 1; + if (!c->is_listening && !c->is_udp && c->loc.is_ip6) c->is_closing = 1; } ifp->is_ip6_changed = false; } diff --git a/src/net_builtin.c b/src/net_builtin.c index 88cdd15b..97ad0271 100644 --- a/src/net_builtin.c +++ b/src/net_builtin.c @@ -424,7 +424,7 @@ static void onstatechange(struct mg_tcpip_if *ifp) { if (ifp->is_ip_changed) { struct mg_connection *c; for (c = ifp->mgr->conns; c != NULL; c = c->next) { - if (!c->is_listening && !c->is_udp) c->is_closing = 1; + if (!c->is_listening && !c->is_udp && !c->loc.is_ip6) c->is_closing = 1; } ifp->is_ip_changed = false; } @@ -1144,7 +1144,7 @@ static void onstate6change(struct mg_tcpip_if *ifp) { if (ifp->is_ip6_changed) { struct mg_connection *c; for (c = ifp->mgr->conns; c != NULL; c = c->next) { - if (!c->is_listening && !c->is_udp) c->is_closing = 1; + if (!c->is_listening && !c->is_udp && c->loc.is_ip6) c->is_closing = 1; } ifp->is_ip6_changed = false; }