suricata: expose SuricataMainLoop and GlobalsDestroy

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.
pull/10720/head
Jason Ish 1 year ago committed by Victor Julien
parent 67d23c7b61
commit cfd98e92a0

@ -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);
}

@ -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);

Loading…
Cancel
Save