From d0e0afb46abea9c75e1ec1adbfee306e9c14105c Mon Sep 17 00:00:00 2001 From: Dirk Ziegelmeier Date: Mon, 21 Aug 2017 09:30:23 +0200 Subject: [PATCH] sockets.c, lwip_socket_drop_registered_mld6_memberships: Remove membership from socket_ipv6_multicast_memberships even if netif cannot be found --- src/api/sockets.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index f23510ae..0c10e977 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -3696,13 +3696,12 @@ lwip_socket_drop_registered_mld6_memberships(int s) struct netif *netif; ip_addr_copy_from_ip6(multi_addr, socket_ipv6_multicast_memberships[i].multi_addr); netif = netif_get_by_index((u8_t)socket_ipv6_multicast_memberships[i].if_idx); - if (netif == NULL) { - return; - } socket_ipv6_multicast_memberships[i].sock = NULL; socket_ipv6_multicast_memberships[i].if_idx = NETIF_NO_INDEX; ip6_addr_set_zero(&socket_ipv6_multicast_memberships[i].multi_addr); - + if (netif == NULL) { + return; + } /* fixme: need netconn_join_leave_group that takes netif as argument */ netconn_join_leave_group(sock->conn, &multi_addr, netif_ip_addr6(netif, 0), NETCONN_LEAVE); }