Skip to content

Commit 11cad87

Browse files
authored
Fixing static IP configuration so it doesn't get overwritten by DHCP as part of WiFi.begin(). (#4103)
Fixing DHCP client stop if WiFi.config() is called before WiFi.begin() (as done in WiFiClientStaticIP.ino)
1 parent 2d7ec30 commit 11cad87

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

Diff for: libraries/WiFi/src/WiFiGeneric.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ esp_err_t set_esp_interface_ip(esp_interface_t interface, IPAddress local_ip=IPA
9191
info.gw.addr = static_cast<uint32_t>(gateway);
9292
info.netmask.addr = static_cast<uint32_t>(subnet);
9393

94+
log_v("Configuring %s static IP: " IPSTR ", MASK: " IPSTR ", GW: " IPSTR,
95+
interface == ESP_IF_WIFI_STA ? "Station" :
96+
interface == ESP_IF_WIFI_AP ? "SoftAP" : "Ethernet",
97+
IP2STR(&info.ip), IP2STR(&info.netmask), IP2STR(&info.gw));
98+
9499
esp_err_t err = ESP_OK;
95100
if(interface != ESP_IF_WIFI_AP){
96101
err = esp_netif_dhcpc_get_status(esp_netif, &status);
@@ -99,7 +104,7 @@ esp_err_t set_esp_interface_ip(esp_interface_t interface, IPAddress local_ip=IPA
99104
return err;
100105
}
101106
err = esp_netif_dhcpc_stop(esp_netif);
102-
if(err){
107+
if(err && err != ESP_ERR_ESP_NETIF_DHCP_ALREADY_STOPPED){
103108
log_e("DHCPC Stop Failed! 0x%04x", err);
104109
return err;
105110
}
@@ -122,7 +127,7 @@ esp_err_t set_esp_interface_ip(esp_interface_t interface, IPAddress local_ip=IPA
122127
return err;
123128
}
124129
err = esp_netif_dhcps_stop(esp_netif);
125-
if(err){
130+
if(err && err != ESP_ERR_ESP_NETIF_DHCP_ALREADY_STOPPED){
126131
log_e("DHCPS Stop Failed! 0x%04x", err);
127132
return err;
128133
}

Diff for: libraries/WiFi/src/WiFiSTA.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ bool WiFiSTAClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subne
308308
if(err == ESP_OK){
309309
err = set_esp_interface_dns(ESP_IF_WIFI_STA, dns1, dns2);
310310
}
311+
_useStaticIp = err == ESP_OK;
311312
return err == ESP_OK;
312313
}
313314

0 commit comments

Comments
 (0)