Przeglądaj źródła

Add rssi and setting reset

Just Call Me Koko 3 lat temu
rodzic
commit
2e469d1410

+ 27 - 2
esp32_marauder/CommandLine.cpp

@@ -192,10 +192,35 @@ void CommandLine::runCommand(String input) {
 
   else if (cmd_args.get(0) == SETTINGS_CMD) {
     int ss_sw = this->argSearch(&cmd_args, "-s"); // Set setting
+    int re_sw = this->argSearch(&cmd_args, "-r"); // Reset setting
+    int en_sw = this->argSearch(&cmd_args, "enable"); // enable setting
+    int da_sw = this->argSearch(&cmd_args, "disable"); // disable setting
+
+    if (re_sw != -1) {
+      settings_obj.createDefaultSettings(SPIFFS);
+      return;
+    }
 
     if (ss_sw == -1) {
       settings_obj.printJsonSettings(settings_obj.getSettingsString());
     }
+    else {
+      bool result = false;
+      String setting_name = cmd_args.get(ss_sw + 1);
+      if (en_sw != -1)
+        result = settings_obj.saveSetting<bool>(setting_name, true);
+      else if (da_sw != -1)
+        result = settings_obj.saveSetting<bool>(setting_name, false);
+      else {
+        Serial.println("You did not properly enable/disable this setting.");
+        return;
+      }
+
+      if (!result) {
+        Serial.println("Could not successfully update setting \"" + setting_name + "\"");
+        return;
+      }
+    }
   }
 
   else if (cmd_args.get(0) == REBOOT_CMD) {
@@ -442,9 +467,9 @@ void CommandLine::runCommand(String input) {
     if (ap_sw != -1) {
       for (int i = 0; i < access_points->size(); i++) {
         if (access_points->get(i).selected)
-          Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " (selected)");
+          Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi + " (selected)");
         else
-          Serial.println("[" + (String)i + "] " + access_points->get(i).essid);
+          Serial.println("[" + (String)i + "] " + access_points->get(i).essid + " " + (String)access_points->get(i).rssi);
       }
     }
     // List SSIDs

+ 1 - 1
esp32_marauder/CommandLine.h

@@ -72,7 +72,7 @@ const char PROGMEM HELP_CLEARAP_CMD_B[] = "clearlist -s";
 const char PROGMEM HELP_REBOOT_CMD[] = "reboot";
 const char PROGMEM HELP_UPDATE_CMD_A[] = "update -s";
 const char PROGMEM HELP_UPDATE_CMD_B[] = "update -w";
-const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> <value>]";
+const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> enable/disable>]/[-r]";
 
 // WiFi sniff/scan
 const char PROGMEM HELP_SCANAP_CMD[] = "scanap";

+ 4 - 2
esp32_marauder/WiFiScan.cpp

@@ -1540,6 +1540,8 @@ void WiFiScan::apSnifferCallbackFull(void* buf, wifi_promiscuous_pkt_type_t type
             Serial.print(" ");
         }
 
+        ap.rssi = snifferPacket->rx_ctrl.rssi;
+
         access_points->add(ap);
 
         Serial.print(access_points->size());
@@ -1662,8 +1664,8 @@ void WiFiScan::apSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
                            snifferPacket->payload[14],
                            snifferPacket->payload[15]},
                           false,
-                          NULL};
-
+                          NULL,
+                          snifferPacket->rx_ctrl.rssi};
 
         access_points->add(ap);
 

+ 1 - 0
esp32_marauder/WiFiScan.h

@@ -92,6 +92,7 @@ struct AccessPoint {
   int bssid[6];
   bool selected;
   LinkedList<char>* beacon;
+  int rssi;
 };
 
 class WiFiScan

+ 4 - 3
esp32_marauder/settings.cpp

@@ -162,6 +162,7 @@ bool Settings::saveSetting<bool>(String key, bool value) {
       return true;
     }
   }
+  return false;
 }
 
 bool Settings::toggleSetting(String key) {
@@ -263,19 +264,19 @@ bool Settings::createDefaultSettings(fs::FS &fs) {
   //jsonBuffer["Settings"][1]["range"]["min"] = 1;
   //jsonBuffer["Settings"][1]["range"]["max"] = 10;
 
-  jsonBuffer["Settings"][0]["name"] = "Force PMKID";
+  jsonBuffer["Settings"][0]["name"] = "ForcePMKID";
   jsonBuffer["Settings"][0]["type"] = "bool";
   jsonBuffer["Settings"][0]["value"] = true;
   jsonBuffer["Settings"][0]["range"]["min"] = false;
   jsonBuffer["Settings"][0]["range"]["max"] = true;
 
-  jsonBuffer["Settings"][1]["name"] = "Force Probe";
+  jsonBuffer["Settings"][1]["name"] = "ForceProbe";
   jsonBuffer["Settings"][1]["type"] = "bool";
   jsonBuffer["Settings"][1]["value"] = true;
   jsonBuffer["Settings"][1]["range"]["min"] = false;
   jsonBuffer["Settings"][1]["range"]["max"] = true;
 
-  jsonBuffer["Settings"][2]["name"] = "Save PCAP";
+  jsonBuffer["Settings"][2]["name"] = "SavePCAP";
   jsonBuffer["Settings"][2]["type"] = "bool";
   jsonBuffer["Settings"][2]["value"] = true;
   jsonBuffer["Settings"][2]["range"]["min"] = false;

+ 1 - 2
esp32_marauder/settings.h

@@ -19,8 +19,6 @@ class Settings {
 
   private:
     String json_settings_string;
-    
-    bool createDefaultSettings(fs::FS &fs);
 
   public:
     bool begin();
@@ -49,6 +47,7 @@ class Settings {
     //uint8_t loadSetting<uint8_t>(String key);
 
     String getSettingsString();
+    bool createDefaultSettings(fs::FS &fs);
     void printJsonSettings(String json_string);
     void main(uint32_t currentTime);
 };