1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Optimize disconnect method in WiFiSTA class (#8760)

This commit is contained in:
Krzysiek S 2022-12-16 14:22:26 +01:00 committed by GitHub
parent eda64f69a7
commit b565b8686d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -371,13 +371,23 @@ bool ESP8266WiFiSTAClass::disconnect(bool wifioff) {
bool ESP8266WiFiSTAClass::disconnect(bool wifioff, bool eraseCredentials) {
bool ret = false;
// Read current config.
struct station_config conf;
wifi_station_get_config(&conf);
if (eraseCredentials) {
// Read current config.
struct station_config conf;
wifi_station_get_config(&conf);
// Erase credentials.
memset(&conf.ssid, 0, sizeof(conf.ssid));
memset(&conf.password, 0, sizeof(conf.password));
// Store modiffied config.
ETS_UART_INTR_DISABLE();
if(WiFi._persistent) {
wifi_station_set_config(&conf);
} else {
wifi_station_set_config_current(&conf);
}
ETS_UART_INTR_ENABLE();
}
// 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) {
else
ret = true;
ETS_UART_INTR_DISABLE();
if(WiFi._persistent) {
wifi_station_set_config(&conf);
} else {
wifi_station_set_config_current(&conf);
}
ETS_UART_INTR_ENABLE();
if(wifioff) {
WiFi.enableSTA(false);
}