Skip to content

Commit b565b86

Browse files
authored
Optimize disconnect method in WiFiSTA class (#8760)
1 parent eda64f6 commit b565b86

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp

+14-13
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,23 @@ bool ESP8266WiFiSTAClass::disconnect(bool wifioff) {
371371
bool ESP8266WiFiSTAClass::disconnect(bool wifioff, bool eraseCredentials) {
372372
bool ret = false;
373373

374-
// Read current config.
375-
struct station_config conf;
376-
wifi_station_get_config(&conf);
377-
378374
if (eraseCredentials) {
375+
// Read current config.
376+
struct station_config conf;
377+
wifi_station_get_config(&conf);
378+
379+
// Erase credentials.
379380
memset(&conf.ssid, 0, sizeof(conf.ssid));
380381
memset(&conf.password, 0, sizeof(conf.password));
382+
383+
// Store modiffied config.
384+
ETS_UART_INTR_DISABLE();
385+
if(WiFi._persistent) {
386+
wifi_station_set_config(&conf);
387+
} else {
388+
wifi_station_set_config_current(&conf);
389+
}
390+
ETS_UART_INTR_ENABLE();
381391
}
382392

383393
// API Reference: wifi_station_disconnect() need to be called after system initializes and the ESP8266 Station mode is enabled.
@@ -386,15 +396,6 @@ bool ESP8266WiFiSTAClass::disconnect(bool wifioff, bool eraseCredentials) {
386396
else
387397
ret = true;
388398

389-
ETS_UART_INTR_DISABLE();
390-
if(WiFi._persistent) {
391-
wifi_station_set_config(&conf);
392-
} else {
393-
wifi_station_set_config_current(&conf);
394-
}
395-
396-
ETS_UART_INTR_ENABLE();
397-
398399
if(wifioff) {
399400
WiFi.enableSTA(false);
400401
}

0 commit comments

Comments
 (0)