Small tm module API rename to reflect that Init/Deinit/ExitPrintStats are per thread calls.

remotes/origin/master-1.0.x
Victor Julien 16 years ago
parent b102ea2123
commit a39108843e

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

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

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

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

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

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

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

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

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

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

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

@ -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 */
}

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

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

Loading…
Cancel
Save