Skip to content

Commit 3500d3e

Browse files
authored
fix(wifi): Fix WiFi.disconnect(true, true) not working (#12004)
1 parent 9cb8e22 commit 3500d3e

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

libraries/WiFi/src/STA.cpp

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -525,25 +525,6 @@ bool STAClass::connect(
525525
#endif /* CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT */
526526

527527
bool STAClass::disconnect(bool eraseap, unsigned long timeout) {
528-
if (eraseap) {
529-
if (!started()) {
530-
log_e("STA not started! You must call begin first.");
531-
return false;
532-
}
533-
wifi_config_t conf;
534-
memset(&conf, 0, sizeof(wifi_config_t));
535-
esp_err_t err = esp_wifi_set_config(WIFI_IF_STA, &conf);
536-
if (err != ESP_OK) {
537-
log_e("STA clear config failed! 0x%x: %s", err, esp_err_to_name(err));
538-
return false;
539-
}
540-
}
541-
542-
if (!connected()) {
543-
log_w("STA already disconnected.");
544-
return true;
545-
}
546-
547528
esp_err_t err = esp_wifi_disconnect();
548529
if (err != ESP_OK) {
549530
log_e("STA disconnect failed! 0x%x: %s", err, esp_err_to_name(err));
@@ -560,6 +541,20 @@ bool STAClass::disconnect(bool eraseap, unsigned long timeout) {
560541
}
561542
}
562543

544+
if (eraseap) {
545+
if (!started()) {
546+
log_e("STA not started! You must call begin first.");
547+
return false;
548+
}
549+
wifi_config_t conf;
550+
memset(&conf, 0, sizeof(wifi_config_t));
551+
esp_err_t err = esp_wifi_set_config(WIFI_IF_STA, &conf);
552+
if (err != ESP_OK) {
553+
log_e("STA clear config failed! 0x%x: %s", err, esp_err_to_name(err));
554+
return false;
555+
}
556+
}
557+
563558
return true;
564559
}
565560

0 commit comments

Comments
 (0)