]> granicus.if.org Git - esp-idf/commitdiff
event: not post got ip event if static is invalid
authorWu Jian Gang <wujiangang@espressif.com>
Mon, 5 Sep 2016 12:14:58 +0000 (20:14 +0800)
committerWu Jian Gang <wujiangang@espressif.com>
Tue, 6 Sep 2016 11:36:03 +0000 (19:36 +0800)
components/esp32/event.c

index 9592bf4c685aca8364c10ce98075059a8cf8c36f..92b751038d98ab36eecfb05e5b83ffae7cd4adf9 100644 (file)
@@ -143,15 +143,20 @@ esp_err_t system_event_sta_connected_handle_default(system_event_t *event)
         tcpip_adapter_dhcpc_start(TCPIP_ADAPTER_IF_STA);
     } else if (status == TCPIP_ADAPTER_DHCP_STOPPED) {
         tcpip_adapter_ip_info_t sta_ip;
-        system_event_t evt;
 
         tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &sta_ip);
 
-        //notify event
-        evt.event_id = SYSTEM_EVENT_STA_GOTIP;
-        memcpy(&evt.event_info.got_ip.ip_info, &sta_ip, sizeof(tcpip_adapter_ip_info_t));
+        if (!(ip4_addr_isany_val(sta_ip.ip) || ip4_addr_isany_val(sta_ip.netmask) || ip4_addr_isany_val(sta_ip.gw))) {
+            system_event_t evt;
 
-        esp_event_send(&evt);
+            //notify event
+            evt.event_id = SYSTEM_EVENT_STA_GOTIP;
+            memcpy(&evt.event_info.got_ip.ip_info, &sta_ip, sizeof(tcpip_adapter_ip_info_t));
+
+            esp_event_send(&evt);
+        } else {
+            WIFI_DEBUG("invalid static ip\n");
+        }
     }
 
     return ESP_OK;