Skip to content

Commit 0643d6e

Browse files
tablatronixdevyte
authored andcommitted
Bugfix/persistentchecks (esp8266#3798)
* persistent check fixes fixes assumtions that persistent matches current configs, and prevents changes when such conditions exist * oops * fix code compliance block scoping
1 parent ac546ac commit 0643d6e

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp

+9-3
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,15 @@ bool ESP8266WiFiAPClass::softAP(const char* ssid, const char* passphrase, int ch
129129
strcpy(reinterpret_cast<char*>(conf.password), passphrase);
130130
}
131131

132-
struct softap_config conf_current;
133-
wifi_softap_get_config(&conf_current);
134-
if(!softap_config_equal(conf, conf_current)) {
132+
struct softap_config conf_compare;
133+
if(WiFi._persistent){
134+
wifi_softap_get_config_default(&conf_compare);
135+
}
136+
else {
137+
wifi_softap_get_config(&conf_compare);
138+
}
139+
140+
if(!softap_config_equal(conf, conf_compare)) {
135141

136142
ETS_UART_INTR_DISABLE();
137143
if(WiFi._persistent) {

libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,11 @@ bool ESP8266WiFiGenericClass::getPersistent(){
316316
* @param m WiFiMode_t
317317
*/
318318
bool ESP8266WiFiGenericClass::mode(WiFiMode_t m) {
319-
if(wifi_get_opmode() == (uint8) m) {
319+
if(_persistent){
320+
if(wifi_get_opmode() == (uint8) m && wifi_get_opmode_default() == (uint8) m){
321+
return true;
322+
}
323+
} else if(wifi_get_opmode() == (uint8) m){
320324
return true;
321325
}
322326

libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp

+9-3
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,15 @@ wl_status_t ESP8266WiFiSTAClass::begin(const char* ssid, const char *passphrase,
138138
conf.bssid_set = 0;
139139
}
140140

141-
struct station_config current_conf;
142-
wifi_station_get_config(&current_conf);
143-
if(sta_config_equal(current_conf, conf)) {
141+
struct station_config conf_compare;
142+
if(WiFi._persistent){
143+
wifi_station_get_config_default(&conf_compare);
144+
}
145+
else {
146+
wifi_station_get_config(&conf_compare);
147+
}
148+
149+
if(sta_config_equal(conf_compare, conf)) {
144150
DEBUGV("sta config unchanged");
145151
}
146152
else {

0 commit comments

Comments
 (0)