]> granicus.if.org Git - esp-idf/commitdiff
tcpip_adapter: set sta ip to IP_ADDR_ANY when sta disconnect from ap
authorliuzhifu <liuzhifu@espressif.com>
Thu, 22 Sep 2016 03:49:37 +0000 (11:49 +0800)
committerliuzhifu <liuzhifu@espressif.com>
Thu, 22 Sep 2016 03:49:37 +0000 (11:49 +0800)
When sta is disconnected from AP, set sta ip to IP_ADDR_ANY to trigger lwip
to clean up all TCP/UDP pcbs.

components/tcpip_adapter/tcpip_adapter_lwip.c

index 0f681d91358bb213ad6327ba49412611d1c91415..78fecf2cbf3a6d21bf197625631ffd75a448c6bb 100644 (file)
@@ -161,6 +161,9 @@ esp_err_t tcpip_adapter_down(tcpip_adapter_if_t tcpip_if)
             ip4_addr_set_zero(&esp_ip[tcpip_if].netmask);
         }
 
+        /* Modify ip address to trigger tcp/udp pcb cleanup */
+        netif_set_addr(esp_netif[tcpip_if], IP4_ADDR_ANY, IP4_ADDR_ANY, IP4_ADDR_ANY);
+
         netif_set_down(esp_netif[tcpip_if]);
     }