]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
suricata: expose SuricataMainLoop and GlobalsDestroy
authorJason Ish <jason.ish@oisf.net>
Thu, 22 Feb 2024 20:25:33 +0000 (14:25 -0600)
committerVictor Julien <victor@inliniac.net>
Mon, 25 Mar 2024 16:36:28 +0000 (17:36 +0100)
Expose SuricataMainLoop and GlobalsDestroy so that SuricataMain can be
replicated by a library user of Suricata.

These removes the `suricata` instance as a function argument to some
of these functions, as the way we use it now, it serves no
purpose. However, it is a reminder that it should probably be
refactored to not be a global, as at some point it might be desirable
for to have multiple instances active without data sharing.

src/suricata.c
src/suricata.h

index cb8c455286d94b092634a0d1bcb04d18ff0a22dd..62d8d0f623c77185dc227525b52eb1fcd6c8b2b9 100644 (file)
@@ -363,8 +363,9 @@ void GlobalsInitPreConfig(void)
     FrameConfigInit();
 }
 
-static void GlobalsDestroy(SCInstance *suri)
+void GlobalsDestroy(void)
 {
+    SCInstance *suri = &suricata;
     HostShutdown();
     HTPFreeConfig();
     HTPAtExitPrintStats();
@@ -2807,8 +2808,9 @@ int PostConfLoadedSetup(SCInstance *suri)
     SCReturnInt(TM_ECODE_OK);
 }
 
-static void SuricataMainLoop(SCInstance *suri)
+void SuricataMainLoop(void)
 {
+    SCInstance *suri = &suricata;
     while(1) {
         if (sigterm_count || sigint_count) {
             suricata_ctl_flags |= SURICATA_STOP;
@@ -3001,7 +3003,7 @@ void SuricataInit(int argc, char **argv)
     return;
 
 out:
-    GlobalsDestroy(&suricata);
+    GlobalsDestroy();
     exit(EXIT_SUCCESS);
 }
 
@@ -3090,11 +3092,11 @@ int SuricataMain(int argc, char **argv)
     /* Post-initialization tasks: wait on thread start/running and get ready for the main loop. */
     SuricataPostInit();
 
-    SuricataMainLoop(&suricata);
+    SuricataMainLoop();
 
     /* Shutdown engine. */
     SuricataShutdown();
-    GlobalsDestroy(&suricata);
+    GlobalsDestroy();
 
     exit(EXIT_SUCCESS);
 }
index ec2a25e28dba24abb4dacba5bfa990e4ed0873b1..a7395995fd9cbc025bd7d83d2fbf57b2ab2971f7 100644 (file)
@@ -195,8 +195,10 @@ void SuricataPreInit(const char *progname);
 void SuricataInit(int argc, char **argv);
 void SuricataPostInit(void);
 int SuricataMain(int argc, char **argv);
+void SuricataMainLoop(void);
 void SuricataShutdown(void);
 int InitGlobal(void);
+void GlobalsDestroy(void);
 int PostConfLoadedSetup(SCInstance *suri);
 void PostConfLoadedDetectSetup(SCInstance *suri);