]> granicus.if.org Git - esp-idf/commitdiff
Allow gw to be null
authorDeomid Ryabkov <rojer@cesanta.com>
Wed, 14 Dec 2016 19:30:40 +0000 (19:30 +0000)
committerDeomid Ryabkov <rojer@cesanta.com>
Wed, 14 Dec 2016 19:34:04 +0000 (19:34 +0000)
Allow interfaces to be configured without a default gateway, for
local-only communication.

In case of the AP interface, if gw is not set, do not offer it.

components/lwip/apps/dhcpserver.c
components/tcpip_adapter/tcpip_adapter_lwip.c

index fcb27f0b0505c26e944b40af99175ee408f97a73..94acc881e2adb8ac40ce3d19d17d5f2d3d598492 100644 (file)
@@ -268,12 +268,14 @@ static u8_t *add_offer_options(u8_t *optptr)
 
         tcpip_adapter_get_ip_info(ESP_IF_WIFI_AP, &if_ip);
 
-        *optptr++ = DHCP_OPTION_ROUTER;
-        *optptr++ = 4;
-        *optptr++ = ip4_addr1(&if_ip.gw);
-        *optptr++ = ip4_addr2(&if_ip.gw);
-        *optptr++ = ip4_addr3(&if_ip.gw);
-        *optptr++ = ip4_addr4(&if_ip.gw);
+        if (!ip4_addr_isany_val(if_ip.gw)) {
+            *optptr++ = DHCP_OPTION_ROUTER;
+            *optptr++ = 4;
+            *optptr++ = ip4_addr1(&if_ip.gw);
+            *optptr++ = ip4_addr2(&if_ip.gw);
+            *optptr++ = ip4_addr3(&if_ip.gw);
+            *optptr++ = ip4_addr4(&if_ip.gw);
+        }
     }
 
 #ifdef USE_DNS
index c20fea5059c2223573d7efc0644dfb6f0c788a91..7fb221f3a459143107e385958321a97b54a49d1f 100644 (file)
@@ -213,7 +213,7 @@ esp_err_t tcpip_adapter_set_ip_info(tcpip_adapter_if_t tcpip_if, tcpip_adapter_i
     tcpip_adapter_dhcp_status_t status;
 
     if (tcpip_if >= TCPIP_ADAPTER_IF_MAX || ip_info == NULL ||
-            ip4_addr_isany_val(ip_info->ip) || ip4_addr_isany_val(ip_info->netmask) || ip4_addr_isany_val(ip_info->gw)) {
+            ip4_addr_isany_val(ip_info->ip) || ip4_addr_isany_val(ip_info->netmask)) {
         return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS;
     }