This commit is contained in:
J. Nick Koston
2026-01-20 12:59:50 -10:00
parent 8f8ad02fe9
commit f851f71d52

View File

@@ -827,17 +827,16 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
}
uint16_t number = it.number;
// Stack buffer for up to 38 APs (~3.5KB), heap fallback for dense environments
SmallBufferWithHeapFallback<38, wifi_ap_record_t> records(number);
err = esp_wifi_scan_get_ap_records(&number, records.get());
if (err != ESP_OK) {
ESP_LOGW(TAG, "esp_wifi_scan_get_ap_records failed: %s", esp_err_to_name(err));
return;
}
scan_result_.init(number);
for (int i = 0; i < number; i++) {
auto &record = records[i];
// Process one record at a time to avoid large buffer allocation
wifi_ap_record_t record;
for (uint16_t i = 0; i < number; i++) {
err = esp_wifi_scan_get_ap_record(&record);
if (err != ESP_OK) {
ESP_LOGW(TAG, "esp_wifi_scan_get_ap_record failed: %s", esp_err_to_name(err));
break;
}
bssid_t bssid;
std::copy(record.bssid, record.bssid + 6, bssid.begin());
std::string ssid(reinterpret_cast<const char *>(record.ssid));