diff --git a/src/alert-debuglog.c b/src/alert-debuglog.c index 439637f399..a37551f9ae 100644 --- a/src/alert-debuglog.c +++ b/src/alert-debuglog.c @@ -46,29 +46,13 @@ void AlertDebuglogExitPrintStats(ThreadVars *, void *); void TmModuleAlertDebuglogRegister (void) { tmm_modules[TMM_ALERTDEBUGLOG].name = "AlertDebuglog"; - tmm_modules[TMM_ALERTDEBUGLOG].Init = AlertDebuglogThreadInit; + tmm_modules[TMM_ALERTDEBUGLOG].ThreadInit = AlertDebuglogThreadInit; tmm_modules[TMM_ALERTDEBUGLOG].Func = AlertDebuglog; - tmm_modules[TMM_ALERTDEBUGLOG].ExitPrintStats = AlertDebuglogExitPrintStats; - tmm_modules[TMM_ALERTDEBUGLOG].Deinit = AlertDebuglogThreadDeinit; + tmm_modules[TMM_ALERTDEBUGLOG].ThreadExitPrintStats = AlertDebuglogExitPrintStats; + tmm_modules[TMM_ALERTDEBUGLOG].ThreadDeinit = AlertDebuglogThreadDeinit; tmm_modules[TMM_ALERTDEBUGLOG].RegisterTests = NULL; } -/* -void TmModuleAlertDebuglogIPv4Register (void) { - tmm_modules[TMM_ALERTDEBUGLOG4].name = "AlertDebuglogIPv4"; - tmm_modules[TMM_ALERTDEBUGLOG4].Init = AlertDebuglogThreadInit; - tmm_modules[TMM_ALERTDEBUGLOG4].Func = AlertDebuglogIPv4; - tmm_modules[TMM_ALERTDEBUGLOG4].Deinit = AlertDebuglogThreadDeinit; - tmm_modules[TMM_ALERTDEBUGLOG4].RegisterTests = NULL; -} -void TmModuleAlertDebuglogIPv6Register (void) { - tmm_modules[TMM_ALERTDEBUGLOG6].name = "AlertDebuglogIPv6"; - tmm_modules[TMM_ALERTDEBUGLOG6].Init = AlertDebuglogThreadInit; - tmm_modules[TMM_ALERTDEBUGLOG6].Func = AlertDebuglogIPv6; - tmm_modules[TMM_ALERTDEBUGLOG6].Deinit = AlertDebuglogThreadDeinit; - tmm_modules[TMM_ALERTDEBUGLOG6].RegisterTests = NULL; -} -*/ typedef struct AlertDebuglogThread_ { FILE *fp; uint32_t alerts; diff --git a/src/alert-fastlog.c b/src/alert-fastlog.c index 5c2225a319..042491d44e 100644 --- a/src/alert-fastlog.c +++ b/src/alert-fastlog.c @@ -46,26 +46,28 @@ void AlertFastlogExitPrintStats(ThreadVars *, void *); void TmModuleAlertFastlogRegister (void) { tmm_modules[TMM_ALERTFASTLOG].name = "AlertFastlog"; - tmm_modules[TMM_ALERTFASTLOG].Init = AlertFastlogThreadInit; + tmm_modules[TMM_ALERTFASTLOG].ThreadInit = AlertFastlogThreadInit; tmm_modules[TMM_ALERTFASTLOG].Func = AlertFastlog; - tmm_modules[TMM_ALERTFASTLOG].ExitPrintStats = AlertFastlogExitPrintStats; - tmm_modules[TMM_ALERTFASTLOG].Deinit = AlertFastlogThreadDeinit; + tmm_modules[TMM_ALERTFASTLOG].ThreadExitPrintStats = AlertFastlogExitPrintStats; + tmm_modules[TMM_ALERTFASTLOG].ThreadDeinit = AlertFastlogThreadDeinit; tmm_modules[TMM_ALERTFASTLOG].RegisterTests = NULL; } void TmModuleAlertFastlogIPv4Register (void) { tmm_modules[TMM_ALERTFASTLOG4].name = "AlertFastlogIPv4"; - tmm_modules[TMM_ALERTFASTLOG4].Init = AlertFastlogThreadInit; + tmm_modules[TMM_ALERTFASTLOG4].ThreadInit = AlertFastlogThreadInit; tmm_modules[TMM_ALERTFASTLOG4].Func = AlertFastlogIPv4; - tmm_modules[TMM_ALERTFASTLOG4].Deinit = AlertFastlogThreadDeinit; + tmm_modules[TMM_ALERTFASTLOG4].ThreadExitPrintStats = AlertFastlogExitPrintStats; + tmm_modules[TMM_ALERTFASTLOG4].ThreadDeinit = AlertFastlogThreadDeinit; tmm_modules[TMM_ALERTFASTLOG4].RegisterTests = NULL; } void TmModuleAlertFastlogIPv6Register (void) { tmm_modules[TMM_ALERTFASTLOG6].name = "AlertFastlogIPv6"; - tmm_modules[TMM_ALERTFASTLOG6].Init = AlertFastlogThreadInit; + tmm_modules[TMM_ALERTFASTLOG6].ThreadInit = AlertFastlogThreadInit; tmm_modules[TMM_ALERTFASTLOG6].Func = AlertFastlogIPv6; - tmm_modules[TMM_ALERTFASTLOG6].Deinit = AlertFastlogThreadDeinit; + tmm_modules[TMM_ALERTFASTLOG6].ThreadExitPrintStats = AlertFastlogExitPrintStats; + tmm_modules[TMM_ALERTFASTLOG6].ThreadDeinit = AlertFastlogThreadDeinit; tmm_modules[TMM_ALERTFASTLOG6].RegisterTests = NULL; } diff --git a/src/alert-unified-alert.c b/src/alert-unified-alert.c index 4403da8f9a..68449de991 100644 --- a/src/alert-unified-alert.c +++ b/src/alert-unified-alert.c @@ -41,9 +41,9 @@ int AlertUnifiedAlertThreadDeinit(ThreadVars *, void *); void TmModuleAlertUnifiedAlertRegister (void) { tmm_modules[TMM_ALERTUNIFIEDALERT].name = "AlertUnifiedAlert"; - tmm_modules[TMM_ALERTUNIFIEDALERT].Init = AlertUnifiedAlertThreadInit; + tmm_modules[TMM_ALERTUNIFIEDALERT].ThreadInit = AlertUnifiedAlertThreadInit; tmm_modules[TMM_ALERTUNIFIEDALERT].Func = AlertUnifiedAlert; - tmm_modules[TMM_ALERTUNIFIEDALERT].Deinit = AlertUnifiedAlertThreadDeinit; + tmm_modules[TMM_ALERTUNIFIEDALERT].ThreadDeinit = AlertUnifiedAlertThreadDeinit; tmm_modules[TMM_ALERTUNIFIEDALERT].RegisterTests = NULL; } diff --git a/src/alert-unified-log.c b/src/alert-unified-log.c index 335e1cf0b1..4971091c6f 100644 --- a/src/alert-unified-log.c +++ b/src/alert-unified-log.c @@ -41,9 +41,9 @@ int AlertUnifiedLogThreadDeinit(ThreadVars *, void *); void TmModuleAlertUnifiedLogRegister (void) { tmm_modules[TMM_ALERTUNIFIEDLOG].name = "AlertUnifiedLog"; - tmm_modules[TMM_ALERTUNIFIEDLOG].Init = AlertUnifiedLogThreadInit; + tmm_modules[TMM_ALERTUNIFIEDLOG].ThreadInit = AlertUnifiedLogThreadInit; tmm_modules[TMM_ALERTUNIFIEDLOG].Func = AlertUnifiedLog; - tmm_modules[TMM_ALERTUNIFIEDLOG].Deinit = AlertUnifiedLogThreadDeinit; + tmm_modules[TMM_ALERTUNIFIEDLOG].ThreadDeinit = AlertUnifiedLogThreadDeinit; tmm_modules[TMM_ALERTUNIFIEDLOG].RegisterTests = NULL; } diff --git a/src/detect.c b/src/detect.c index 13a90bc7a2..006c033168 100644 --- a/src/detect.c +++ b/src/detect.c @@ -66,10 +66,10 @@ int DetectThreadDeinit(ThreadVars *, void *); void TmModuleDetectRegister (void) { tmm_modules[TMM_DETECT].name = "Detect"; - tmm_modules[TMM_DETECT].Init = DetectThreadInit; + tmm_modules[TMM_DETECT].ThreadInit = DetectThreadInit; tmm_modules[TMM_DETECT].Func = Detect; - tmm_modules[TMM_DETECT].ExitPrintStats = DetectExitPrintStats; - tmm_modules[TMM_DETECT].Deinit = DetectThreadDeinit; + tmm_modules[TMM_DETECT].ThreadExitPrintStats = DetectExitPrintStats; + tmm_modules[TMM_DETECT].ThreadDeinit = DetectThreadDeinit; tmm_modules[TMM_DETECT].RegisterTests = SigRegisterTests; } diff --git a/src/log-httplog.c b/src/log-httplog.c index 204f11bb27..451b87fc63 100644 --- a/src/log-httplog.c +++ b/src/log-httplog.c @@ -41,26 +41,28 @@ void LogHttplogExitPrintStats(ThreadVars *, void *); void TmModuleLogHttplogRegister (void) { tmm_modules[TMM_LOGHTTPLOG].name = "LogHttplog"; - tmm_modules[TMM_LOGHTTPLOG].Init = LogHttplogThreadInit; + tmm_modules[TMM_LOGHTTPLOG].ThreadInit = LogHttplogThreadInit; tmm_modules[TMM_LOGHTTPLOG].Func = LogHttplog; - tmm_modules[TMM_LOGHTTPLOG].ExitPrintStats = LogHttplogExitPrintStats; - tmm_modules[TMM_LOGHTTPLOG].Deinit = LogHttplogThreadDeinit; + tmm_modules[TMM_LOGHTTPLOG].ThreadExitPrintStats = LogHttplogExitPrintStats; + tmm_modules[TMM_LOGHTTPLOG].ThreadDeinit = LogHttplogThreadDeinit; tmm_modules[TMM_LOGHTTPLOG].RegisterTests = NULL; } void TmModuleLogHttplogIPv4Register (void) { tmm_modules[TMM_LOGHTTPLOG4].name = "LogHttplogIPv4"; - tmm_modules[TMM_LOGHTTPLOG4].Init = LogHttplogThreadInit; + tmm_modules[TMM_LOGHTTPLOG4].ThreadInit = LogHttplogThreadInit; tmm_modules[TMM_LOGHTTPLOG4].Func = LogHttplogIPv4; - tmm_modules[TMM_LOGHTTPLOG4].Deinit = LogHttplogThreadDeinit; + tmm_modules[TMM_LOGHTTPLOG4].ThreadExitPrintStats = LogHttplogExitPrintStats; + tmm_modules[TMM_LOGHTTPLOG4].ThreadDeinit = LogHttplogThreadDeinit; tmm_modules[TMM_LOGHTTPLOG4].RegisterTests = NULL; } void TmModuleLogHttplogIPv6Register (void) { tmm_modules[TMM_LOGHTTPLOG6].name = "LogHttplogIPv6"; - tmm_modules[TMM_LOGHTTPLOG6].Init = LogHttplogThreadInit; + tmm_modules[TMM_LOGHTTPLOG6].ThreadInit = LogHttplogThreadInit; tmm_modules[TMM_LOGHTTPLOG6].Func = LogHttplogIPv6; - tmm_modules[TMM_LOGHTTPLOG6].Deinit = LogHttplogThreadDeinit; + tmm_modules[TMM_LOGHTTPLOG6].ThreadExitPrintStats = LogHttplogExitPrintStats; + tmm_modules[TMM_LOGHTTPLOG6].ThreadDeinit = LogHttplogThreadDeinit; tmm_modules[TMM_LOGHTTPLOG6].RegisterTests = NULL; } diff --git a/src/respond-reject.c b/src/respond-reject.c index 9fed127af4..612c823aa3 100644 --- a/src/respond-reject.c +++ b/src/respond-reject.c @@ -35,9 +35,9 @@ int RejectSendIPv6ICMP(ThreadVars *, Packet *, void *); void TmModuleRespondRejectRegister (void) { tmm_modules[TMM_RESPONDREJECT].name = "RespondReject"; - tmm_modules[TMM_RESPONDREJECT].Init = NULL; + tmm_modules[TMM_RESPONDREJECT].ThreadInit = NULL; tmm_modules[TMM_RESPONDREJECT].Func = RespondRejectFunc; - tmm_modules[TMM_RESPONDREJECT].Deinit = NULL; + tmm_modules[TMM_RESPONDREJECT].ThreadDeinit = NULL; tmm_modules[TMM_RESPONDREJECT].RegisterTests = NULL; } diff --git a/src/source-nfq.c b/src/source-nfq.c index a4dab3db7f..9eed50c38e 100644 --- a/src/source-nfq.c +++ b/src/source-nfq.c @@ -31,28 +31,28 @@ int NoNFQSupportExit(ThreadVars *, void *, void **); void TmModuleReceiveNFQRegister (void) { tmm_modules[TMM_RECEIVENFQ].name = "ReceiveNFQ"; - tmm_modules[TMM_RECEIVENFQ].Init = NoNFQSupportExit; + tmm_modules[TMM_RECEIVENFQ].ThreadInit = NoNFQSupportExit; tmm_modules[TMM_RECEIVENFQ].Func = NULL; - tmm_modules[TMM_RECEIVENFQ].ExitPrintStats = NULL; - tmm_modules[TMM_RECEIVENFQ].Deinit = NULL; + tmm_modules[TMM_RECEIVENFQ].ThreadExitPrintStats = NULL; + tmm_modules[TMM_RECEIVENFQ].ThreadDeinit = NULL; tmm_modules[TMM_RECEIVENFQ].RegisterTests = NULL; } void TmModuleVerdictNFQRegister (void) { tmm_modules[TMM_VERDICTNFQ].name = "VerdictNFQ"; - tmm_modules[TMM_VERDICTNFQ].Init = NoNFQSupportExit; + tmm_modules[TMM_VERDICTNFQ].ThreadInit = NoNFQSupportExit; tmm_modules[TMM_VERDICTNFQ].Func = NULL; - tmm_modules[TMM_VERDICTNFQ].ExitPrintStats = NULL; - tmm_modules[TMM_VERDICTNFQ].Deinit = NULL; + tmm_modules[TMM_VERDICTNFQ].ThreadExitPrintStats = NULL; + tmm_modules[TMM_VERDICTNFQ].ThreadDeinit = NULL; tmm_modules[TMM_VERDICTNFQ].RegisterTests = NULL; } void TmModuleDecodeNFQRegister (void) { tmm_modules[TMM_DECODENFQ].name = "DecodeNFQ"; - tmm_modules[TMM_DECODENFQ].Init = NoNFQSupportExit; + tmm_modules[TMM_DECODENFQ].ThreadInit = NoNFQSupportExit; tmm_modules[TMM_DECODENFQ].Func = NULL; - tmm_modules[TMM_DECODENFQ].ExitPrintStats = NULL; - tmm_modules[TMM_DECODENFQ].Deinit = NULL; + tmm_modules[TMM_DECODENFQ].ThreadExitPrintStats = NULL; + tmm_modules[TMM_DECODENFQ].ThreadDeinit = NULL; tmm_modules[TMM_DECODENFQ].RegisterTests = NULL; } @@ -92,19 +92,19 @@ void TmModuleReceiveNFQRegister (void) { pthread_mutex_init(&nfq_init_lock, NULL); tmm_modules[TMM_RECEIVENFQ].name = "ReceiveNFQ"; - tmm_modules[TMM_RECEIVENFQ].Init = ReceiveNFQThreadInit; + tmm_modules[TMM_RECEIVENFQ].ThreadInit = ReceiveNFQThreadInit; tmm_modules[TMM_RECEIVENFQ].Func = ReceiveNFQ; - tmm_modules[TMM_RECEIVENFQ].ExitPrintStats = ReceiveNFQThreadExitStats; - tmm_modules[TMM_RECEIVENFQ].Deinit = NULL; + tmm_modules[TMM_RECEIVENFQ].ThreadExitPrintStats = ReceiveNFQThreadExitStats; + tmm_modules[TMM_RECEIVENFQ].ThreadDeinit = NULL; tmm_modules[TMM_RECEIVENFQ].RegisterTests = NULL; } void TmModuleVerdictNFQRegister (void) { tmm_modules[TMM_VERDICTNFQ].name = "VerdictNFQ"; - tmm_modules[TMM_VERDICTNFQ].Init = VerdictNFQThreadInit; + tmm_modules[TMM_VERDICTNFQ].ThreadInit = VerdictNFQThreadInit; tmm_modules[TMM_VERDICTNFQ].Func = VerdictNFQ; - tmm_modules[TMM_VERDICTNFQ].ExitPrintStats = VerdictNFQThreadExitStats; - tmm_modules[TMM_VERDICTNFQ].Deinit = VerdictNFQThreadDeinit; + tmm_modules[TMM_VERDICTNFQ].ThreadExitPrintStats = VerdictNFQThreadExitStats; + tmm_modules[TMM_VERDICTNFQ].ThreadDeinit = VerdictNFQThreadDeinit; tmm_modules[TMM_VERDICTNFQ].RegisterTests = NULL; } diff --git a/src/source-pcap-file.c b/src/source-pcap-file.c index f15e67c18e..5e00404099 100644 --- a/src/source-pcap-file.c +++ b/src/source-pcap-file.c @@ -60,19 +60,19 @@ int DecodePcapFileThreadInit(ThreadVars *, void *, void **); void TmModuleReceivePcapFileRegister (void) { tmm_modules[TMM_RECEIVEPCAPFILE].name = "ReceivePcapFile"; - tmm_modules[TMM_RECEIVEPCAPFILE].Init = ReceivePcapFileThreadInit; + tmm_modules[TMM_RECEIVEPCAPFILE].ThreadInit = ReceivePcapFileThreadInit; tmm_modules[TMM_RECEIVEPCAPFILE].Func = ReceivePcapFile; - tmm_modules[TMM_RECEIVEPCAPFILE].ExitPrintStats = ReceivePcapFileThreadExitStats; - tmm_modules[TMM_RECEIVEPCAPFILE].Deinit = NULL; + tmm_modules[TMM_RECEIVEPCAPFILE].ThreadExitPrintStats = ReceivePcapFileThreadExitStats; + tmm_modules[TMM_RECEIVEPCAPFILE].ThreadDeinit = NULL; tmm_modules[TMM_RECEIVEPCAPFILE].RegisterTests = NULL; } void TmModuleDecodePcapFileRegister (void) { tmm_modules[TMM_DECODEPCAPFILE].name = "DecodePcapFile"; - tmm_modules[TMM_DECODEPCAPFILE].Init = DecodePcapFileThreadInit; + tmm_modules[TMM_DECODEPCAPFILE].ThreadInit = DecodePcapFileThreadInit; tmm_modules[TMM_DECODEPCAPFILE].Func = DecodePcapFile; - tmm_modules[TMM_DECODEPCAPFILE].ExitPrintStats = NULL; - tmm_modules[TMM_DECODEPCAPFILE].Deinit = NULL; + tmm_modules[TMM_DECODEPCAPFILE].ThreadExitPrintStats = NULL; + tmm_modules[TMM_DECODEPCAPFILE].ThreadDeinit = NULL; tmm_modules[TMM_DECODEPCAPFILE].RegisterTests = NULL; } diff --git a/src/source-pcap.c b/src/source-pcap.c index c562d0fb35..96c4dfc2c4 100644 --- a/src/source-pcap.c +++ b/src/source-pcap.c @@ -57,10 +57,10 @@ int DecodePcap(ThreadVars *, Packet *, void *, PacketQueue *); */ void TmModuleReceivePcapRegister (void) { tmm_modules[TMM_RECEIVEPCAP].name = "ReceivePcap"; - tmm_modules[TMM_RECEIVEPCAP].Init = ReceivePcapThreadInit; + tmm_modules[TMM_RECEIVEPCAP].ThreadInit = ReceivePcapThreadInit; tmm_modules[TMM_RECEIVEPCAP].Func = ReceivePcap; - tmm_modules[TMM_RECEIVEPCAP].ExitPrintStats = ReceivePcapThreadExitStats; - tmm_modules[TMM_RECEIVEPCAP].Deinit = NULL; + tmm_modules[TMM_RECEIVEPCAP].ThreadExitPrintStats = ReceivePcapThreadExitStats; + tmm_modules[TMM_RECEIVEPCAP].ThreadDeinit = NULL; tmm_modules[TMM_RECEIVEPCAP].RegisterTests = NULL; } @@ -70,10 +70,10 @@ void TmModuleReceivePcapRegister (void) { */ void TmModuleDecodePcapRegister (void) { tmm_modules[TMM_DECODEPCAP].name = "DecodePcap"; - tmm_modules[TMM_DECODEPCAP].Init = DecodePcapThreadInit; + tmm_modules[TMM_DECODEPCAP].ThreadInit = DecodePcapThreadInit; tmm_modules[TMM_DECODEPCAP].Func = DecodePcap; - tmm_modules[TMM_DECODEPCAP].ExitPrintStats = NULL; - tmm_modules[TMM_DECODEPCAP].Deinit = NULL; + tmm_modules[TMM_DECODEPCAP].ThreadExitPrintStats = NULL; + tmm_modules[TMM_DECODEPCAP].ThreadDeinit = NULL; tmm_modules[TMM_DECODEPCAP].RegisterTests = NULL; } diff --git a/src/stream-tcp.c b/src/stream-tcp.c index 60cf111ffb..9d8ead8cad 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -77,10 +77,10 @@ typedef struct StreamTcpThread_ { void TmModuleStreamTcpRegister (void) { tmm_modules[TMM_STREAMTCP].name = "StreamTcp"; - tmm_modules[TMM_STREAMTCP].Init = StreamTcpThreadInit; + tmm_modules[TMM_STREAMTCP].ThreadInit = StreamTcpThreadInit; tmm_modules[TMM_STREAMTCP].Func = StreamTcp; - tmm_modules[TMM_STREAMTCP].ExitPrintStats = StreamTcpExitPrintStats; - tmm_modules[TMM_STREAMTCP].Deinit = StreamTcpThreadDeinit; + tmm_modules[TMM_STREAMTCP].ThreadExitPrintStats = StreamTcpExitPrintStats; + tmm_modules[TMM_STREAMTCP].ThreadDeinit = StreamTcpThreadDeinit; tmm_modules[TMM_STREAMTCP].RegisterTests = StreamTcpRegisterTests; } diff --git a/src/tm-modules.c b/src/tm-modules.c index bf97cc2d32..6465c3283f 100644 --- a/src/tm-modules.c +++ b/src/tm-modules.c @@ -7,8 +7,6 @@ #include "packet-queue.h" #include "tm-modules.h" -TmModule tmm_modules[TMM_SIZE]; - void TmModuleDebugList(void) { TmModule *t; uint16_t i; @@ -17,11 +15,17 @@ void TmModuleDebugList(void) { for (i = 0; i < TMM_SIZE; i++) { t = &tmm_modules[i]; + if (t->name == NULL) + continue; + printf("TmModuleDebugList: %s:%p\n", t->name, t->Func); } printf("TmModuleDebugList: end\n"); } +/** \brief get a tm module ptr by name + * \param name name string + * \retval ptr to the module or NULL */ TmModule *TmModuleGetByName(char *name) { TmModule *t; uint16_t i; @@ -29,6 +33,9 @@ TmModule *TmModuleGetByName(char *name) { for (i = 0; i < TMM_SIZE; i++) { t = &tmm_modules[i]; + if (t->name == NULL) + continue; + if (strcmp(t->name, name) == 0) return t; } @@ -36,13 +43,18 @@ TmModule *TmModuleGetByName(char *name) { return NULL; } +/** \brief register all unittests for the tm modules */ void TmModuleRegisterTests(void) { +#ifdef UNITTESTS TmModule *t; uint16_t i; for (i = 0; i < TMM_SIZE; i++) { t = &tmm_modules[i]; + if (t->name == NULL) + continue; + if (t->RegisterTests == NULL) { printf("Warning: threading module %s has no unittest " "registration function.\n", t->name); @@ -50,5 +62,6 @@ void TmModuleRegisterTests(void) { t->RegisterTests(); } } +#endif /* UNITTESTS */ } diff --git a/src/tm-modules.h b/src/tm-modules.h index 8fde039b04..84469ab2bd 100644 --- a/src/tm-modules.h +++ b/src/tm-modules.h @@ -5,10 +5,15 @@ typedef struct TmModule_ { char *name; - int (*Init)(ThreadVars *, void *, void **); + + /** thread handling */ + int (*ThreadInit)(ThreadVars *, void *, void **); + void (*ThreadExitPrintStats)(ThreadVars *, void *); + int (*ThreadDeinit)(ThreadVars *, void *); + + /** the packet processing function */ int (*Func)(ThreadVars *, Packet *, void *, PacketQueue *); - void (*ExitPrintStats)(ThreadVars *, void *); - int (*Deinit)(ThreadVars *, void *); + void (*RegisterTests)(void); } TmModule; diff --git a/src/tm-threads.c b/src/tm-threads.c index 1c9d3b80af..8196600dfe 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -33,10 +33,11 @@ uint8_t tv_aof = THV_RESTART_THREAD; typedef struct TmSlot_ { /* function pointers */ - int (*SlotInit)(ThreadVars *, void *, void **); int (*SlotFunc)(ThreadVars *, Packet *, void *, PacketQueue *); - void (*SlotExitPrintStats)(ThreadVars *, void *); - int (*SlotDeinit)(ThreadVars *, void *); + + int (*SlotThreadInit)(ThreadVars *, void *, void **); + void (*SlotThreadExitPrintStats)(ThreadVars *, void *); + int (*SlotThreadDeinit)(ThreadVars *, void *); /* data storage */ void *slot_initdata; @@ -69,8 +70,8 @@ void *TmThreadsSlot1NoIn(void *td) { if (tv->set_cpu_affinity == 1) SetCPUAffinity(tv->cpu_affinity); - if (s->s.SlotInit != NULL) { - r = s->s.SlotInit(tv, s->s.slot_initdata, &s->s.slot_data); + if (s->s.SlotThreadInit != NULL) { + r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data); if (r != 0) { EngineKill(); @@ -104,12 +105,12 @@ void *TmThreadsSlot1NoIn(void *td) { run = 0; } - if (s->s.SlotExitPrintStats != NULL) { - s->s.SlotExitPrintStats(tv, s->s.slot_data); + if (s->s.SlotThreadExitPrintStats != NULL) { + s->s.SlotThreadExitPrintStats(tv, s->s.slot_data); } - if (s->s.SlotDeinit != NULL) { - r = s->s.SlotDeinit(tv, s->s.slot_data); + if (s->s.SlotThreadDeinit != NULL) { + r = s->s.SlotThreadDeinit(tv, s->s.slot_data); if (r != 0) { tv->flags |= THV_CLOSED; pthread_exit((void *) -1); @@ -130,8 +131,8 @@ void *TmThreadsSlot1NoOut(void *td) { if (tv->set_cpu_affinity == 1) SetCPUAffinity(tv->cpu_affinity); - if (s->s.SlotInit != NULL) { - r = s->s.SlotInit(tv, s->s.slot_initdata, &s->s.slot_data); + if (s->s.SlotThreadInit != NULL) { + r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data); if (r != 0) { EngineKill(); @@ -159,12 +160,12 @@ void *TmThreadsSlot1NoOut(void *td) { run = 0; } - if (s->s.SlotExitPrintStats != NULL) { - s->s.SlotExitPrintStats(tv, s->s.slot_data); + if (s->s.SlotThreadExitPrintStats != NULL) { + s->s.SlotThreadExitPrintStats(tv, s->s.slot_data); } - if (s->s.SlotDeinit != NULL) { - r = s->s.SlotDeinit(tv, s->s.slot_data); + if (s->s.SlotThreadDeinit != NULL) { + r = s->s.SlotThreadDeinit(tv, s->s.slot_data); if (r != 0) { tv->flags |= THV_CLOSED; pthread_exit((void *) -1); @@ -186,8 +187,8 @@ void *TmThreadsSlot1NoInOut(void *td) { //printf("TmThreadsSlot1NoInOut: %s starting\n", tv->name); - if (s->s.SlotInit != NULL) { - r = s->s.SlotInit(tv, s->s.slot_initdata, &s->s.slot_data); + if (s->s.SlotThreadInit != NULL) { + r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data); if (r != 0) { EngineKill(); @@ -215,12 +216,12 @@ void *TmThreadsSlot1NoInOut(void *td) { } } - if (s->s.SlotExitPrintStats != NULL) { - s->s.SlotExitPrintStats(tv, s->s.slot_data); + if (s->s.SlotThreadExitPrintStats != NULL) { + s->s.SlotThreadExitPrintStats(tv, s->s.slot_data); } - if (s->s.SlotDeinit != NULL) { - r = s->s.SlotDeinit(tv, s->s.slot_data); + if (s->s.SlotThreadDeinit != NULL) { + r = s->s.SlotThreadDeinit(tv, s->s.slot_data); if (r != 0) { tv->flags |= THV_CLOSED; pthread_exit((void *) -1); @@ -244,8 +245,8 @@ void *TmThreadsSlot1(void *td) { //printf("TmThreadsSlot1: %s starting\n", tv->name); - if (s->s.SlotInit != NULL) { - r = s->s.SlotInit(tv, s->s.slot_initdata, &s->s.slot_data); + if (s->s.SlotThreadInit != NULL) { + r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data); if (r != 0) { EngineKill(); @@ -292,12 +293,12 @@ void *TmThreadsSlot1(void *td) { } } - if (s->s.SlotExitPrintStats != NULL) { - s->s.SlotExitPrintStats(tv, s->s.slot_data); + if (s->s.SlotThreadExitPrintStats != NULL) { + s->s.SlotThreadExitPrintStats(tv, s->s.slot_data); } - if (s->s.SlotDeinit != NULL) { - r = s->s.SlotDeinit(tv, s->s.slot_data); + if (s->s.SlotThreadDeinit != NULL) { + r = s->s.SlotThreadDeinit(tv, s->s.slot_data); if (r != 0) { tv->flags |= THV_CLOSED; pthread_exit((void *) -1); @@ -362,8 +363,8 @@ void *TmThreadsSlotVar(void *td) { //printf("TmThreadsSlot1: %s starting\n", tv->name); for (slot = s->s; slot != NULL; slot = slot->slot_next) { - if (slot->SlotInit != NULL) { - r = slot->SlotInit(tv, slot->slot_initdata, &slot->slot_data); + if (slot->SlotThreadInit != NULL) { + r = slot->SlotThreadInit(tv, slot->slot_initdata, &slot->slot_data); if (r != 0) { EngineKill(); @@ -404,12 +405,12 @@ void *TmThreadsSlotVar(void *td) { } for (slot = s->s; slot != NULL; slot = slot->slot_next) { - if (slot->SlotExitPrintStats != NULL) { - slot->SlotExitPrintStats(tv, slot->slot_data); + if (slot->SlotThreadExitPrintStats != NULL) { + slot->SlotThreadExitPrintStats(tv, slot->slot_data); } - if (slot->SlotDeinit != NULL) { - r = slot->SlotDeinit(tv, slot->slot_data); + if (slot->SlotThreadDeinit != NULL) { + r = slot->SlotThreadDeinit(tv, slot->slot_data); if (r != 0) { tv->flags |= THV_CLOSED; pthread_exit((void *) -1); @@ -477,26 +478,26 @@ void Tm1SlotSetFunc(ThreadVars *tv, TmModule *tm, void *data) { printf("Warning: slot 1 is already set tp %p, " "overwriting with %p\n", s1->s.SlotFunc, tm->Func); - s1->s.SlotInit = tm->Init; + s1->s.SlotThreadInit = tm->ThreadInit; s1->s.slot_initdata = data; s1->s.SlotFunc = tm->Func; - s1->s.SlotExitPrintStats = tm->ExitPrintStats; - s1->s.SlotDeinit = tm->Deinit; + s1->s.SlotThreadExitPrintStats = tm->ThreadExitPrintStats; + s1->s.SlotThreadDeinit = tm->ThreadDeinit; } void TmVarSlotSetFuncAppend(ThreadVars *tv, TmModule *tm, void *data) { TmVarSlot *s = (TmVarSlot *)tv->tm_slots; TmSlot *slot = malloc(sizeof(TmSlot)); - if (slot == NULL) + if (slot == NULL) return; memset(slot, 0, sizeof(TmSlot)); - slot->SlotInit = tm->Init; + slot->SlotThreadInit = tm->ThreadInit; slot->slot_initdata = data; slot->SlotFunc = tm->Func; - slot->SlotExitPrintStats = tm->ExitPrintStats; - slot->SlotDeinit = tm->Deinit; + slot->SlotThreadExitPrintStats = tm->ThreadExitPrintStats; + slot->SlotThreadDeinit = tm->ThreadDeinit; if (s->s == NULL) { s->s = slot;