diff --git a/src/SocketServer.cpp b/src/SocketServer.cpp index fd1fa2b3..8d4edc56 100644 --- a/src/SocketServer.cpp +++ b/src/SocketServer.cpp @@ -1355,13 +1355,15 @@ void ProcessRequest() if (wifiScanNum > 0) { // By default the records are sorted by signal strength, so just // send all ap records that fit the transfer buffer. - for(int i = 0; i < wifiScanNum && data_sz <= sizeof(transferBuffer); i++, data_sz += sizeof(WiFiScanData)) + for (int i = 0; i < wifiScanNum && data_sz <= sizeof(transferBuffer); i++, data_sz += sizeof(WiFiScanData)) { const wifi_ap_record_t& ap = wifiScanAPs[i]; WiFiScanData &d = reinterpret_cast(transferBuffer)[i]; - SafeStrncpy((char*)(d.ssid), (char*)ap.ssid, - std::min(sizeof(d.ssid), sizeof(ap.ssid))); + SafeStrncpy((char*)(d.ssid), (const char*)ap.ssid, std::min(sizeof(d.ssid), sizeof(ap.ssid))); d.rssi = ap.rssi; + d.primaryChannel = ap.primary; + memcpy(d.mac, ap.bssid, sizeof(d.mac)); + memset(d.spare, 0, sizeof(d.spare)); if (ap.phy_11n) { d.phymode = EspWiFiPhyMode::N; diff --git a/src/include/MessageFormats.h b/src/include/MessageFormats.h index 223d8765..ffd3a400 100644 --- a/src/include/MessageFormats.h +++ b/src/include/MessageFormats.h @@ -115,6 +115,9 @@ struct WiFiScanData int8_t rssi; /* signal strength from -100 to 0 in dB */ EspWiFiPhyMode phymode; WiFiAuth auth; + uint8_t primaryChannel; + uint8_t mac[6]; + uint8_t spare[2]; // spare fore future use char ssid[SsidLength + 1]; };