Add memory usage limit

This commit is contained in:
Just Call Me Koko
2025-03-23 15:45:31 -04:00
parent 7efa7c8a12
commit 7fd64995bb
2 changed files with 83 additions and 63 deletions

View File

@@ -3135,7 +3135,12 @@ void WiFiScan::apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type
//if (display_obj.display_buffer->size() == 0) //if (display_obj.display_buffer->size() == 0)
//{ //{
//display_obj.loading = true; //display_obj.loading = true;
if (wifi_scan_obj.checkMem())
display_obj.display_buffer->add(display_string); display_obj.display_buffer->add(display_string);
else {
String warning_str = "Mem limit reached " + display_string;
display_obj.display_buffer->add(warning_str);
}
//display_obj.loading = false; //display_obj.loading = false;
//} //}
#endif #endif
@@ -3158,6 +3163,8 @@ void WiFiScan::apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type
false, false,
NULL};*/ NULL};*/
if (wifi_scan_obj.checkMem()) {
AccessPoint ap; AccessPoint ap;
ap.essid = essid; ap.essid = essid;
ap.channel = snifferPacket->rx_ctrl.channel; ap.channel = snifferPacket->rx_ctrl.channel;
@@ -3199,6 +3206,7 @@ void WiFiScan::apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type
Serial.print(esp_get_free_heap_size()); Serial.print(esp_get_free_heap_size());
Serial.println(); Serial.println();
}
buffer_obj.append(snifferPacket, len); buffer_obj.append(snifferPacket, len);
} }
@@ -3635,11 +3643,14 @@ void WiFiScan::beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type
} }
void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type) { void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type) {
extern WiFiScan wifi_scan_obj;
wifi_promiscuous_pkt_t *snifferPacket = (wifi_promiscuous_pkt_t*)buf; wifi_promiscuous_pkt_t *snifferPacket = (wifi_promiscuous_pkt_t*)buf;
WifiMgmtHdr *frameControl = (WifiMgmtHdr*)snifferPacket->payload; WifiMgmtHdr *frameControl = (WifiMgmtHdr*)snifferPacket->payload;
wifi_pkt_rx_ctrl_t ctrl = (wifi_pkt_rx_ctrl_t)snifferPacket->rx_ctrl; wifi_pkt_rx_ctrl_t ctrl = (wifi_pkt_rx_ctrl_t)snifferPacket->rx_ctrl;
int len = snifferPacket->rx_ctrl.sig_len; int len = snifferPacket->rx_ctrl.sig_len;
bool mem_check = wifi_scan_obj.checkMem();
String display_string = ""; String display_string = "";
String mac = ""; String mac = "";
@@ -3729,6 +3740,7 @@ void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t typ
return; return;
// Add to list of stations // Add to list of stations
if (mem_check) {
Station sta = { Station sta = {
{snifferPacket->payload[frame_offset], {snifferPacket->payload[frame_offset],
snifferPacket->payload[frame_offset + 1], snifferPacket->payload[frame_offset + 1],
@@ -3739,6 +3751,7 @@ void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t typ
false}; false};
stations->add(sta); stations->add(sta);
}
// Print findings to serial // Print findings to serial
Serial.print((String)stations->size() + ": "); Serial.print((String)stations->size() + ": ");
@@ -3776,7 +3789,12 @@ void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t typ
if (display_obj.display_buffer->size() == 0) if (display_obj.display_buffer->size() == 0)
{ {
display_obj.loading = true; display_obj.loading = true;
if (mem_check)
display_obj.display_buffer->add(display_string); display_obj.display_buffer->add(display_string);
else {
String warning_str = "Memory lim reached " + display_string;
display_obj.display_buffer->add(warning_str);
}
display_obj.loading = false; display_obj.loading = false;
} }
#endif #endif
@@ -3784,10 +3802,12 @@ void WiFiScan::stationSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t typ
// Add station index to AP in list // Add station index to AP in list
//access_points->get(ap_index).stations->add(stations->size() - 1); //access_points->get(ap_index).stations->add(stations->size() - 1);
if (mem_check) {
AccessPoint ap = access_points->get(ap_index); AccessPoint ap = access_points->get(ap_index);
ap.stations->add(stations->size() - 1); ap.stations->add(stations->size() - 1);
access_points->set(ap_index, ap); access_points->set(ap_index, ap);
}
buffer_obj.append(snifferPacket, len); buffer_obj.append(snifferPacket, len);
} }

View File

@@ -1147,29 +1147,29 @@
//// MEMORY LOWER LIMIT STUFF //// MEMORY LOWER LIMIT STUFF
// These values are in bytes // These values are in bytes
#ifdef MARAUDER_M5STICKC #ifdef MARAUDER_M5STICKC
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_MINI) #elif defined(MARAUDER_MINI)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_V7) #elif defined(MARAUDER_V7)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_REV_FEATHER) #elif defined(MARAUDER_REV_FEATHER)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_V4) #elif defined(MARAUDER_V4)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 8500
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1) #elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 8500
#elif defined(MARAUDER_KIT) #elif defined(MARAUDER_KIT)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 8500
#elif defined(GENERIC_ESP32) #elif defined(GENERIC_ESP32)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_FLIPPER) #elif defined(MARAUDER_FLIPPER)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(ESP32_LDDB) #elif defined(ESP32_LDDB)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(MARAUDER_DEV_BOARD_PRO) #elif defined(MARAUDER_DEV_BOARD_PRO)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#elif defined(XIAO_ESP32_S3) #elif defined(XIAO_ESP32_S3)
#define MEM_LOWER_LIM 20000 #define MEM_LOWER_LIM 5000
#endif #endif
//// END MEMORY LOWER LIMIT STUFF //// END MEMORY LOWER LIMIT STUFF