Skip to content

Commit

Permalink
Add eraseap option to WiFi disconnect method. (esp8266#8758)
Browse files Browse the repository at this point in the history
Add eraseCredentials option to WiFi disconnect method (legacy default: true)
  • Loading branch information
cziter15 authored and hasenradball committed Nov 18, 2024
1 parent cce5267 commit 5212b0d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
25 changes: 21 additions & 4 deletions libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,15 +353,32 @@ bool ESP8266WiFiSTAClass::reconnect() {
}

/**
* Disconnect from the network
* @param wifioff
* Disconnect from the network with clearing saved credentials
* @param wifioff Bool indicating whether STA should be disabled.
* @return one value of wl_status_t enum
*/
bool ESP8266WiFiSTAClass::disconnect(bool wifioff) {
// Disconnect with clearing saved credentials.
return disconnect(wifioff, true);
}

/**
* Disconnect from the network
* @param wifioff Bool indicating whether STA should be disabled.
* @param eraseCredentials Bool indicating whether saved credentials should be erased.
* @return one value of wl_status_t enum
*/
bool ESP8266WiFiSTAClass::disconnect(bool wifioff, bool eraseCredentials) {
bool ret = false;

// Read current config.
struct station_config conf;
*conf.ssid = 0;
*conf.password = 0;
wifi_station_get_config(&conf);

if (eraseCredentials) {
memset(&conf.ssid, 0, sizeof(conf.ssid));
memset(&conf.password, 0, sizeof(conf.password));
}

// API Reference: wifi_station_disconnect() need to be called after system initializes and the ESP8266 Station mode is enabled.
if (WiFi.getMode() & WIFI_STA)
Expand Down
2 changes: 2 additions & 0 deletions libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ class ESP8266WiFiSTAClass: public LwipIntf {
bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000);

bool reconnect();

bool disconnect(bool wifioff = false);
bool disconnect(bool wifioff, bool eraseCredentials);

bool isConnected();

Expand Down

0 comments on commit 5212b0d

Please sign in to comment.