]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
add internal running mode
authorEric Leblond <eric@regit.org>
Tue, 7 May 2013 11:44:27 +0000 (13:44 +0200)
committerEric Leblond <eric@regit.org>
Tue, 30 Jul 2013 13:22:33 +0000 (15:22 +0200)
src/runmodes.c
src/runmodes.h
src/suricata.c

index 4fa58d04884e03cbf9c2bfa2c5664d3f42f146de..70b375b1888e8888c57987996c1d9b8a5ad92c03 100644 (file)
@@ -79,7 +79,7 @@ typedef struct RunModeOutput_ {
 TAILQ_HEAD(, RunModeOutput_) RunModeOutputs =
     TAILQ_HEAD_INITIALIZER(RunModeOutputs);
 
-static RunModes runmodes[RUNMODE_MAX];
+static RunModes runmodes[RUNMODE_USER_MAX];
 
 static char *active_runmode;
 
@@ -214,7 +214,7 @@ void RunModeListRunmodes(void)
            "-----------------------\n");
     int i = RUNMODE_UNKNOWN + 1;
     int j = 0;
-    for ( ; i < RUNMODE_MAX; i++) {
+    for ( ; i < RUNMODE_USER_MAX; i++) {
         int mode_displayed = 0;
         for (j = 0; j < runmodes[i].no_of_runmodes; j++) {
             if (mode_displayed == 1) {
index 3b0ee46cb327ebd66a28fd7e54776c3c61f41bab..d9c7a1d0b122dd8cf53867a6a9c349297d6b49ec 100644 (file)
@@ -38,6 +38,22 @@ enum {
     RUNMODE_UNITTEST,
     RUNMODE_NAPATECH,
     RUNMODE_UNIX_SOCKET,
+    RUNMODE_USER_MAX, /* Last standard running mode */
+    RUNMODE_LIST_KEYWORDS,
+    RUNMODE_LIST_APP_LAYERS,
+    RUNMODE_LIST_CUDA_CARDS,
+    RUNMODE_LIST_RUNMODES,
+    RUNMODE_PRINT_VERSION,
+    RUNMODE_PRINT_BUILDINFO,
+    RUNMODE_PRINT_USAGE,
+    RUNMODE_DUMP_CONFIG,
+    RUNMODE_CONF_TEST,
+    RUNMODE_LIST_UNITTEST,
+#ifdef OS_WIN32
+    RUNMODE_INSTALL_SERVICE,
+    RUNMODE_REMOVE_SERVICE,
+    RUNMODE_CHANGE_SERVICE_PARAMS,
+#endif
     RUNMODE_MAX,
 };
 
index e197aec6780f9c8ece11ea61bdba62601a2a04e9..ce55779fd78c4e6808d5cecbb287597bf43c2b39 100644 (file)
@@ -880,28 +880,8 @@ static TmEcode ParseInterfacesList(int run_mode, char *pcap_dev)
     SCReturnInt(TM_ECODE_OK);
 }
 
-typedef enum {
-    SC_RUN_NOT_DEFINED,
-    SC_RUN_LIST_KEYWORDS,
-    SC_RUN_LIST_APP_LAYERS,
-    SC_RUN_LIST_CUDA_CARDS,
-    SC_RUN_LIST_RUNMODES,
-    SC_RUN_PRINT_VERSION,
-    SC_RUN_PRINT_BUILDINFO,
-    SC_RUN_PRINT_USAGE,
-    SC_RUN_DUMP_CONFIG,
-    SC_RUN_CONF_TEST,
-    SC_RUN_LIST_UNITTEST,
-    SC_RUN_UNITTEST,
-#ifdef OS_WIN32
-    SC_RUN_INSTALL_SERVICE,
-    SC_RUN_REMOVE_SERVICE,
-    SC_RUN_CHANGE_SERVICE_PARAMS,
-#endif
-} SuriRunningMode;
-
 struct SuriInstance {
-    SuriRunningMode running_mode;
+    int running_mode;
 
     char pcap_dev[128];
     char *sig_file;
@@ -1170,7 +1150,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
                 return TM_ECODE_FAILED;
 #endif /* UNITTESTS */
             } else if (strcmp((long_opts[option_index]).name, "list-runmodes") == 0) {
-                suri->running_mode = SC_RUN_LIST_RUNMODES;
+                suri->running_mode = RUNMODE_LIST_RUNMODES;
                 return TM_ECODE_OK;
             } else if (strcmp((long_opts[option_index]).name, "list-keywords") == 0) {
                 if (optarg) {
@@ -1185,15 +1165,15 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
             }
 #ifdef OS_WIN32
             else if(strcmp((long_opts[option_index]).name, "service-install") == 0) {
-                suri->running_mode = SC_RUN_INSTALL_SERVICE;
+                suri->running_mode = RUNMODE_INSTALL_SERVICE;
                 return TM_ECODE_OK;
             }
             else if(strcmp((long_opts[option_index]).name, "service-remove") == 0) {
-                suri->running_mode = SC_RUN_REMOVE_SERVICE;
+                suri->running_mode = RUNMODE_REMOVE_SERVICE;
                 return TM_ECODE_OK;
             }
             else if(strcmp((long_opts[option_index]).name, "service-change-params") == 0) {
-                suri->running_mode = SC_RUN_CHANGE_SERVICE_PARAMS;
+                suri->running_mode = RUNMODE_CHANGE_SERVICE_PARAMS;
                 return TM_ECODE_OK;
             }
 #endif /* OS_WIN32 */
@@ -1277,7 +1257,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
 #endif /* HAVE_PCAP_SET_BUFF */
             }
             else if(strcmp((long_opts[option_index]).name, "build-info") == 0) {
-                suri->running_mode = SC_RUN_PRINT_BUILDINFO;
+                suri->running_mode = RUNMODE_PRINT_BUILDINFO;
                 return TM_ECODE_OK;
             }
 #ifdef HAVE_MPIPE
@@ -1317,7 +1297,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
             break;
 #endif /* OS_WIN32 */
         case 'h':
-            suri->running_mode = SC_RUN_PRINT_USAGE;
+            suri->running_mode = RUNMODE_PRINT_USAGE;
             return TM_ECODE_OK;
         case 'i':
             memset(suri->pcap_dev, 0, sizeof(suri->pcap_dev));
@@ -1445,7 +1425,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
 #ifdef UNITTESTS
             if (run_mode == RUNMODE_UNKNOWN) {
                 run_mode = RUNMODE_UNITTEST;
-                suri->running_mode = SC_RUN_UNITTEST;
+                suri->running_mode = RUNMODE_UNITTEST;
             } else {
                 SCLogError(SC_ERR_MULTIPLE_RUN_MODE, "more than one run mode has"
                                                      " been specified");
@@ -1466,7 +1446,7 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
 #endif
             break;
         case 'V':
-            suri->running_mode = SC_RUN_PRINT_VERSION;
+            suri->running_mode = RUNMODE_PRINT_VERSION;
             return TM_ECODE_OK;
         case 'F':
             SetBpfStringFromFile(optarg);
@@ -1478,17 +1458,17 @@ static TmEcode SuriParseCommandLine(int argc, char** argv, struct SuriInstance *
     }
 
     if (list_app_layer_protocols)
-        suri->running_mode = SC_RUN_LIST_APP_LAYERS;
+        suri->running_mode = RUNMODE_LIST_APP_LAYERS;
     if (list_cuda_cards)
-        suri->running_mode = SC_RUN_LIST_CUDA_CARDS;
+        suri->running_mode = RUNMODE_LIST_CUDA_CARDS;
     if (list_keywords)
-        suri->running_mode = SC_RUN_LIST_KEYWORDS;
+        suri->running_mode = RUNMODE_LIST_KEYWORDS;
     if (list_unittests)
-        suri->running_mode = SC_RUN_LIST_UNITTEST;
+        suri->running_mode = RUNMODE_LIST_UNITTEST;
     if (dump_config)
-        suri->running_mode = SC_RUN_DUMP_CONFIG;
+        suri->running_mode = RUNMODE_DUMP_CONFIG;
     if (conf_test)
-        suri->running_mode = SC_RUN_CONF_TEST;
+        suri->running_mode = RUNMODE_CONF_TEST;
 
     return TM_ECODE_OK;
 }
@@ -1557,17 +1537,17 @@ int main(int argc, char **argv)
             return ListAppLayerProtocols();
         case SC_RUN_PRINT_VERSION:
             return SuriPrintVersion();
-        case SC_RUN_PRINT_BUILDINFO:
+        case RUNMODE_PRINT_BUILDINFO:
             SCPrintBuildInfo();
             return TM_ECODE_OK;
-        case SC_RUN_PRINT_USAGE:
+        case RUNMODE_PRINT_USAGE:
             usage(argv[0]);
             return TM_ECODE_OK;
 #ifdef __SC_CUDA_SUPPORT__
         case SC_RUN_LIST_CUDA_CARDS:
             return ListCudaCards();
 #endif
-        case SC_RUN_LIST_RUNMODES:
+        case RUNMODE_LIST_RUNMODES:
             RunModeListRunmodes();
             return TM_ECODE_OK;
         /* FIXME not sexy here */
@@ -1576,19 +1556,19 @@ int main(int argc, char **argv)
         case SC_RUN_UNITTEST:
             return RunUnittests(0, suri.regex_arg);
 #ifdef OS_WIN32
-        case SC_RUN_INSTALL_SERVICE:
+        case RUNMODE_INSTALL_SERVICE:
             if (SCServiceInstall(argc, argv)) {
                 return TM_ECODE_FAILED;
             }
             SCLogInfo("Suricata service has been successfuly installed.");
             exit(EXIT_SUCCESS);
-        case SC_RUN_REMOVE_SERVICE:
+        case RUNMODE_REMOVE_SERVICE:
             if (SCServiceRemove(argc, argv)) {
                 return TM_ECODE_FAILED;
             }
             SCLogInfo("Suricata service has been successfuly removed.");
             exit(EXIT_SUCCESS);
-        case SC_RUN_CHANGE_SERVICE_PARAMS:
+        case RUNMODE_CHANGE_SERVICE_PARAMS:
             if (SCServiceChangeParams(argc, argv)) {
                 return TM_ECODE_FAILED;
             }
@@ -1647,7 +1627,7 @@ int main(int argc, char **argv)
     AppLayerDetectProtoThreadInit();
     AppLayerParsersInitPostProcess();
 
-    if (suri.running_mode == SC_RUN_DUMP_CONFIG) {
+    if (suri.running_mode == RUNMODE_DUMP_CONFIG) {
         ConfDump();
         exit(EXIT_SUCCESS);
     }
@@ -1719,7 +1699,7 @@ int main(int argc, char **argv)
     }
 
     if (run_mode == RUNMODE_UNKNOWN) {
-        if (!engine_analysis && !(suri.running_mode == SC_RUN_CONF_TEST)) {
+        if (!engine_analysis && !(suri.running_mode == RUNMODE_CONF_TEST)) {
             usage(argv[0]);
             exit(EXIT_FAILURE);
         }
@@ -1960,7 +1940,7 @@ int main(int argc, char **argv)
             exit(EXIT_FAILURE);
     }
 
-    if(suri.running_mode == SC_RUN_CONF_TEST){
+    if(suri.running_mode == RUNMODE_CONF_TEST){
         SCLogInfo("Configuration provided was successfully loaded. Exiting.");
         exit(EXIT_SUCCESS);
     }