Przeglądaj źródła

Do not change settings that are not informed in the JSON

tcpassos 2 lat temu
rodzic
commit
a86e8964bf

+ 2 - 4
applications/external/wifi_marauder_companion/script/wifi_marauder_script.c

@@ -6,8 +6,6 @@
 #define WIFI_MARAUDER_DEFAULT_TIMEOUT_PROBE 60
 #define WIFI_MARAUDER_DEFAULT_TIMEOUT_SNIFF 60
 #define WIFI_MARAUDER_DEFAULT_TIMEOUT_BEACON 60
-#define WIFI_MARAUDER_DEFAULT_ENABLE_LED true
-#define WIFI_MARAUDER_DEFAULT_SAVE_PCAP true
 
 WifiMarauderScript *wifi_marauder_script_alloc() {
     WifiMarauderScript *script = (WifiMarauderScript *) malloc(sizeof(WifiMarauderScript));
@@ -17,8 +15,8 @@ WifiMarauderScript *wifi_marauder_script_alloc() {
     script->name = NULL;
     script->description = NULL;
     script->first_stage = NULL;
-    script->enable_led = WIFI_MARAUDER_DEFAULT_ENABLE_LED;
-    script->save_pcap = WIFI_MARAUDER_DEFAULT_SAVE_PCAP;
+    script->enable_led = WifiMarauderScriptBooleanUndefined;
+    script->save_pcap = WifiMarauderScriptBooleanUndefined;
     script->repeat = 1;
     return script;
 }

+ 8 - 3
applications/external/wifi_marauder_companion/script/wifi_marauder_script.h

@@ -99,6 +99,12 @@
 #include <storage/storage.h>
 #include "cJSON.h"
 
+typedef enum {
+    WifiMarauderScriptBooleanFalse = 0,
+    WifiMarauderScriptBooleanTrue = 1,
+    WifiMarauderScriptBooleanUndefined = 2
+} WifiMarauderScriptBoolean;
+
 typedef enum {
     WifiMarauderScriptStageTypeScan,
     WifiMarauderScriptStageTypeSelect,
@@ -196,9 +202,8 @@ typedef struct WifiMarauderScript {
     char* name;
     char* description;
     WifiMarauderScriptStage *first_stage;
-    // TODO: Think of a way to not change the settings if they are not informed in the JSON
-    bool enable_led;
-    bool save_pcap;
+    WifiMarauderScriptBoolean enable_led;
+    WifiMarauderScriptBoolean save_pcap;
     int repeat;
 } WifiMarauderScript;
 

+ 10 - 6
applications/external/wifi_marauder_companion/script/wifi_marauder_script_executor.c

@@ -185,14 +185,18 @@ void wifi_marauder_script_execute_start(void *context) {
     char command[100];
 
     // Enables or disables the LED according to script settings
-    snprintf(command, sizeof(command), "settings -s EnableLED %s", script->enable_led ? "enable" : "disable");
-    wifi_marauder_uart_tx((uint8_t*)command, strlen(command));
-    _send_line_break();
+    if (script->enable_led != WifiMarauderScriptBooleanUndefined) {
+        snprintf(command, sizeof(command), "settings -s EnableLED %s", script->enable_led ? "enable" : "disable");
+        wifi_marauder_uart_tx((uint8_t*)command, strlen(command));
+        _send_line_break();
+    }
 
     // Enables or disables PCAP saving according to script settings
-    snprintf(command, sizeof(command), "settings -s SavePCAP %s", script->save_pcap ? "enable" : "disable");
-    wifi_marauder_uart_tx((uint8_t*)command, strlen(command));
-    _send_line_break();
+    if (script->save_pcap != WifiMarauderScriptBooleanUndefined) {
+        snprintf(command, sizeof(command), "settings -s SavePCAP %s", script->save_pcap ? "enable" : "disable");
+        wifi_marauder_uart_tx((uint8_t*)command, strlen(command));
+        _send_line_break();
+    }
 }