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:
parent
eda64f69a7
commit
b565b8686d
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user