Full WiFi scan and apply BSSID if used (#5351)

* use extended wifi scan (fix Arduino bug for ESP32 family), apply BSSID
* if BSSID changed: force reconnect, add comment to BSSID check
This commit is contained in:
Damian Schneider
2026-02-08 09:26:36 +01:00
committed by GitHub
parent e9ced6ddf1
commit 80e75139c6
2 changed files with 26 additions and 2 deletions

View File

@@ -36,6 +36,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
if (n >= multiWiFi.size()) multiWiFi.emplace_back(); // expand vector by one
char oldSSID[33]; strcpy(oldSSID, multiWiFi[n].clientSSID);
char oldPass[65]; strcpy(oldPass, multiWiFi[n].clientPass);
uint8_t oldBSSID[6]; memcpy(oldBSSID, multiWiFi[n].bssid, 6); // save old BSSID
strlcpy(multiWiFi[n].clientSSID, request->arg(cs).c_str(), 33);
if (strlen(oldSSID) == 0 || strncmp(multiWiFi[n].clientSSID, oldSSID, 32) != 0) {
@@ -46,6 +47,9 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
forceReconnect = true;
}
fillStr2MAC(multiWiFi[n].bssid, request->arg(bs).c_str());
if (memcmp(oldBSSID, multiWiFi[n].bssid, 6) != 0) { // check if BSSID changed
forceReconnect = true;
}
for (size_t i = 0; i < 4; i++) {
ip[3] = 48+i;
gw[3] = 48+i;