File tree 3 files changed +27
-9
lines changed
3 files changed +27
-9
lines changed Original file line number Diff line number Diff line change @@ -671,7 +671,10 @@ IPAddress NetworkInterface::globalIPv6() const
671
671
672
672
size_t NetworkInterface::printTo (Print & out) const {
673
673
size_t bytes = 0 ;
674
- bytes += out.print (esp_netif_get_desc (_esp_netif));
674
+ const char * dscr = esp_netif_get_desc (_esp_netif);
675
+ if (dscr != NULL ){
676
+ bytes += out.print (dscr);
677
+ }
675
678
bytes += out.print (" :" );
676
679
if (esp_netif_is_netif_up (_esp_netif)){
677
680
bytes += out.print (" <UP" );
Original file line number Diff line number Diff line change @@ -294,9 +294,13 @@ bool STAClass::onEnable(){
294
294
return false ;
295
295
}
296
296
if (_esp_netif == NULL ){
297
- Network.onSysEvent (_onStaArduinoEvent);
298
297
_esp_netif = get_esp_interface_netif (ESP_IF_WIFI_STA);
298
+ if (_esp_netif == NULL ){
299
+ log_e (" STA was enabled, but netif is NULL???" );
300
+ return false ;
301
+ }
299
302
/* attach to receive events */
303
+ Network.onSysEvent (_onStaArduinoEvent);
300
304
initNetif (ESP_NETIF_ID_STA);
301
305
}
302
306
return true ;
Original file line number Diff line number Diff line change @@ -476,24 +476,25 @@ bool WiFiGenericClass::mode(wifi_mode_t m)
476
476
if (((m & WIFI_MODE_STA) != 0 ) && ((cm & WIFI_MODE_STA) == 0 )){
477
477
// we are enabling STA interface
478
478
WiFi.STA .onEnable ();
479
- } else if (((m & WIFI_MODE_STA) == 0 ) && ((cm & WIFI_MODE_STA) != 0 )){
480
- // we are disabling STA interface
481
- WiFi.STA .onDisable ();
482
479
}
483
-
484
480
if (((m & WIFI_MODE_AP) != 0 ) && ((cm & WIFI_MODE_AP) == 0 )){
485
481
// we are enabling AP interface
486
482
WiFi.AP .onEnable ();
487
- } else if (((m & WIFI_MODE_AP) == 0 ) && ((cm & WIFI_MODE_AP) != 0 )){
488
- // we are disabling AP interface
489
- WiFi.AP .onDisable ();
490
483
}
491
484
492
485
if (cm && !m){
493
486
// Turn OFF WiFi
494
487
if (!espWiFiStop ()){
495
488
return false ;
496
489
}
490
+ if ((cm & WIFI_MODE_STA) != 0 ){
491
+ // we are disabling STA interface
492
+ WiFi.STA .onDisable ();
493
+ }
494
+ if ((cm & WIFI_MODE_AP) != 0 ){
495
+ // we are disabling AP interface
496
+ WiFi.AP .onDisable ();
497
+ }
497
498
Network.removeEvent (_eventCallback);
498
499
return true ;
499
500
}
@@ -511,6 +512,16 @@ bool WiFiGenericClass::mode(wifi_mode_t m)
511
512
log_e (" Could not set mode! %d" , err);
512
513
return false ;
513
514
}
515
+
516
+ if (((m & WIFI_MODE_STA) == 0 ) && ((cm & WIFI_MODE_STA) != 0 )){
517
+ // we are disabling STA interface (but AP is ON)
518
+ WiFi.STA .onDisable ();
519
+ }
520
+ if (((m & WIFI_MODE_AP) == 0 ) && ((cm & WIFI_MODE_AP) != 0 )){
521
+ // we are disabling AP interface (but STA is ON)
522
+ WiFi.AP .onDisable ();
523
+ }
524
+
514
525
if (_long_range){
515
526
if (m & WIFI_MODE_STA){
516
527
err = esp_wifi_set_protocol (WIFI_IF_STA, WIFI_PROTOCOL_LR);
You can’t perform that action at this time.
0 commit comments