some changes in threading constants

remotes/origin/master-1.0.x
Gurvinder Singh 16 years ago committed by Victor Julien
parent ec75946e21
commit e7952b1331

@ -21,7 +21,7 @@
#include "util-debug.h"
/*prototypes*/
TmEcode Unified2Alert (ThreadVars *, Packet *, void *, PacketQueue *);
int Unified2Alert (ThreadVars *, Packet *, void *, PacketQueue *);
TmEcode Unified2AlertThreadInit(ThreadVars *, void *, void **);
TmEcode Unified2AlertThreadDeinit(ThreadVars *, void *);
int Unified2IPv4TypeAlert(ThreadVars *, Packet *, void *, PacketQueue *);
@ -156,7 +156,7 @@ int Unified2AlertRotateFile(ThreadVars *t, Unified2AlertThread *aun) {
return 0;
}
TmEcode Unified2Alert (ThreadVars *t, Packet *p, void *data, PacketQueue *pq)
int Unified2Alert (ThreadVars *t, Packet *p, void *data, PacketQueue *pq)
{
if(PKT_IS_IPV4(p)) {
Unified2IPv4TypeAlert (t, p, data, pq);
@ -168,7 +168,7 @@ TmEcode Unified2Alert (ThreadVars *t, Packet *p, void *data, PacketQueue *pq)
return TM_ECODE_OK;
}
return TM_ECODE_FAILED;
return -1;
}
/**
@ -465,8 +465,8 @@ int Unified2IPv4TypeAlert (ThreadVars *tv, Packet *p, void *data, PacketQueue *p
* \param t Thread Variable containing input/output queue, cpu affinity etc.
* \param initdata Unified2 thread initial data.
* \param data Unified2 thread data.
* \retval 0 on succces
* \retval -1 on failure
* \retval TM_ECODE_OK on succces
* \retval TM_ECODE_FAILED on failure
*/
TmEcode Unified2AlertThreadInit(ThreadVars *t, void *initdata, void **data)
@ -496,8 +496,8 @@ TmEcode Unified2AlertThreadInit(ThreadVars *t, void *initdata, void **data)
*
* \param t Thread Variable containing input/output queue, cpu affinity etc.
* \param data Unified2 thread data.
* \retval 0 on succces
* \retval -1 on failure
* \retval TM_ECODE_OK on succces
* \retval TM_ECODE_FAILED on failure
*/
TmEcode Unified2AlertThreadDeinit(ThreadVars *t, void *data)

@ -514,8 +514,8 @@ int SigMatchSignatures(ThreadVars *th_v, DetectEngineCtx *de_ctx, DetectEngineTh
* \param p packet to inspect
* \param data thread specific data
* \param pq packet queue
* \retval 1 error
* \retval 0 ok
* \retval TM_ECODE_FAILED error
* \retval TM_ECODE_OK ok
*/
TmEcode Detect(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) {

@ -49,10 +49,8 @@ TmEcode RespondRejectFunc(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq
if (PKT_IS_IPV4(p)) {
if (PKT_IS_TCP(p)) {
ret = RejectSendIPv4TCP(tv, p, data);
goto end;
} else if(PKT_IS_UDP(p)) {
ret = RejectSendIPv4ICMP(tv, p, data);
goto end;
} else {
return TM_ECODE_OK;
}
@ -68,7 +66,6 @@ TmEcode RespondRejectFunc(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq
/* we're only supporting IPv4 and IPv6 */
return TM_ECODE_OK;
}
end:
if (ret)
return TM_ECODE_FAILED;
else

@ -57,7 +57,7 @@ TmEcode NoNFQSupportExit(ThreadVars *tv, void *initdata, void **data)
{
printf("Error creating thread %s: you do not have support for nfqueue "
"enabled please recompile with --enable-nfqueue\n", tv->name);
exit(TM_ECODE_FAILED);
exit(EXIT_FAILURE);
}
#else /* implied we do have NFQ support */
@ -282,7 +282,7 @@ TmEcode ReceiveNFQThreadInit(ThreadVars *tv, void *initdata, void **data) {
printf("NFQInitThread failed\n");
//return -1;
mutex_unlock(&nfq_init_lock);
exit(TM_ECODE_FAILED);
exit(EXIT_FAILURE);
}
*data = (void *)ntv;

@ -117,6 +117,7 @@ void PcapCallback(char *user, struct pcap_pkthdr *h, u_char *pkt) {
* \param tv pointer to ThreadVars
* \param data pointer that gets cast into PcapThreadVars for ptv
* \param pq pointer to the PacketQueue (not used here but part of the api)
* \retval TM_ECODE_FAILED on failure and TM_ECODE_OK on success
*/
TmEcode ReceivePcap(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) {
PcapThreadVars *ptv = (PcapThreadVars *)data;

@ -148,8 +148,8 @@ void PfringProcessPacket(void *user, struct pfring_pkthdr *h, u_char *pkt, Packe
* \param tv pointer to ThreadVars
* \param data pointer that gets cast into PfringThreadVars for ptv
* \param pq pointer to the PacketQueue (not used here but part of the api)
* \retval 0 on success
* \retval -1 on failure
* \retval TM_ECODE_OK on success
* \retval TM_ECODE_FAILED on failure
*/
TmEcode ReceivePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) {
PfringThreadVars *ptv = (PfringThreadVars *)data;
@ -188,8 +188,8 @@ TmEcode ReceivePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq) {
* \param data pointer gets populated with PfringThreadVars
* \todo add a config option for setting cluster id
* \todo Create a general pfring setup function.
* \retval 0 on success
* \retval -1 on error
* \retval TM_ECODE_OK on success
* \retval TM_ECODE_FAILED on error
*/
TmEcode ReceivePfringThreadInit(ThreadVars *tv, void *initdata, void **data) {
int rc;
@ -258,7 +258,7 @@ void ReceivePfringThreadExitStats(ThreadVars *tv, void *data) {
* \brief DeInit function closes pd at exit.
* \param tv pointer to ThreadVars
* \param data pointer that gets cast into PfringThreadVars for ptvi
* \retval 0 is always returned
* \retval TM_ECODE_OK is always returned
*/
TmEcode ReceivePfringThreadDeinit(ThreadVars *tv, void *data) {
PfringThreadVars *ptv = (PfringThreadVars *)data;
@ -278,7 +278,7 @@ TmEcode ReceivePfringThreadDeinit(ThreadVars *tv, void *data) {
* \param data pointer that gets cast into PfringThreadVars for ptv
* \param pq pointer to the current PacketQueue
* \todo Verify that PF_RING only deals with ethernet traffic
* \retval 0 is always returned
* \retval TM_ECODE_OK is always returned
*/
TmEcode DecodePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
{
@ -301,8 +301,8 @@ TmEcode DecodePfring(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
* \param tv pointer to ThreadVars
* \param initdata pointer to initilization data.
* \param data pointer that gets cast into PfringThreadVars for ptv
* \retval 0 is returned on success
* \retval -1 is returned on error
* \retval TM_ECODE_OK is returned on success
* \retval TM_ECODE_FAILED is returned on error
*/
TmEcode DecodePfringThreadInit(ThreadVars *tv, void *initdata, void **data)
{

@ -1478,8 +1478,8 @@ TmEcode StreamTcp (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq)
ret = StreamTcpPacket(tv, p, stt);
mutex_unlock(&p->flow->m);
if (ret)
return TM_ECODE_FAILED;
//if (ret)
// return TM_ECODE_FAILED;
stt->pkts++;
return TM_ECODE_OK;

@ -92,6 +92,7 @@ void *TmThreadsSlot1NoIn(void *td) {
if (s->s.SlotThreadInit != NULL) {
r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data);
//printf("%s: TmThreadsSlot1NoIn: init r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
EngineKill();
@ -107,7 +108,7 @@ void *TmThreadsSlot1NoIn(void *td) {
TmThreadTestThreadUnPaused(tv);
r = s->s.SlotFunc(tv, p, s->s.slot_data, &s->s.slot_pq);
//printf("%s: TmThreadsSlot1NoIn: func r %" PRId32 "\n", tv->name, r);
/* handle error */
if (r == TM_ECODE_FAILED) {
TmqhReleasePacketsToPacketPool(&s->s.slot_pq);
@ -135,6 +136,7 @@ void *TmThreadsSlot1NoIn(void *td) {
if (s->s.SlotThreadDeinit != NULL) {
r = s->s.SlotThreadDeinit(tv, s->s.slot_data);
//printf("%s: TmThreadsSlot1NoIn: deinit r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
TmThreadsSetFlag(tv, THV_CLOSED);
pthread_exit((void *) -1);
@ -157,6 +159,7 @@ void *TmThreadsSlot1NoOut(void *td) {
if (s->s.SlotThreadInit != NULL) {
r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data);
//printf("%s: TmThreadsSlot1NoOut: init r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
EngineKill();
@ -174,7 +177,7 @@ void *TmThreadsSlot1NoOut(void *td) {
p = tv->tmqh_in(tv);
r = s->s.SlotFunc(tv, p, s->s.slot_data, /* no outqh no pq */NULL);
//printf("%s: TmThreadsSlot1NoOut: func r %" PRId32 "\n", tv->name, r);
/* handle error */
if (r == TM_ECODE_FAILED) {
TmqhOutputPacketpool(tv, p);
@ -194,6 +197,7 @@ void *TmThreadsSlot1NoOut(void *td) {
if (s->s.SlotThreadDeinit != NULL) {
r = s->s.SlotThreadDeinit(tv, s->s.slot_data);
//printf("%s: TmThreadsSlot1NoOut: r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
TmThreadsSetFlag(tv, THV_CLOSED);
pthread_exit((void *) -1);
@ -217,6 +221,7 @@ void *TmThreadsSlot1NoInOut(void *td) {
if (s->s.SlotThreadInit != NULL) {
r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data);
//printf("%s: TmThreadsSlot1NoInOut: init r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
EngineKill();
@ -231,6 +236,7 @@ void *TmThreadsSlot1NoInOut(void *td) {
TmThreadTestThreadUnPaused(tv);
r = s->s.SlotFunc(tv, NULL, s->s.slot_data, /* no outqh, no pq */NULL);
//printf("%s: TmThreadsSlot1NoInOut: func r %" PRId32 "\n", tv->name, r);
//printf("%s: TmThreadsSlot1NoInNoOut: r %" PRId32 "\n", tv->name, r);
/* handle error */
@ -252,6 +258,7 @@ void *TmThreadsSlot1NoInOut(void *td) {
if (s->s.SlotThreadDeinit != NULL) {
r = s->s.SlotThreadDeinit(tv, s->s.slot_data);
//printf("%s: TmThreadsSlot1NoInOut: deinit r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
TmThreadsSetFlag(tv, THV_CLOSED);
pthread_exit((void *) -1);
@ -277,6 +284,7 @@ void *TmThreadsSlot1(void *td) {
if (s->s.SlotThreadInit != NULL) {
r = s->s.SlotThreadInit(tv, s->s.slot_initdata, &s->s.slot_data);
//printf("%s: TmThreadsSlot1: init r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
EngineKill();
@ -297,7 +305,7 @@ void *TmThreadsSlot1(void *td) {
//printf("%s: TmThreadsSlot1: p == NULL\n", tv->name);
} else {
r = s->s.SlotFunc(tv, p, s->s.slot_data, &s->s.slot_pq);
printf("%s: TmThreadsSlot1: func r %" PRId32 "\n", tv->name, r);
/* handle error */
if (r == TM_ECODE_FAILED) {
TmqhReleasePacketsToPacketPool(&s->s.slot_pq);
@ -331,6 +339,7 @@ void *TmThreadsSlot1(void *td) {
if (s->s.SlotThreadDeinit != NULL) {
r = s->s.SlotThreadDeinit(tv, s->s.slot_data);
//printf("%s: TmThreadsSlot1: deinit r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
TmThreadsSetFlag(tv, THV_CLOSED);
pthread_exit((void *) -1);
@ -349,6 +358,7 @@ static inline TmEcode TmThreadsSlotVarRun (ThreadVars *tv, Packet *p, TmSlot *sl
for (s = slot; s != NULL; s = s->slot_next) {
r = s->SlotFunc(tv, p, s->slot_data, &s->slot_pq);
//printf("TmThreadsSlotVarRun: s->SlotFunc %p returned r %" PRId32 "\n", s->SlotFunc, r);
/* handle error */
if (r == TM_ECODE_FAILED) {
//printf("TmThreadsSlotVarRun: s->SlotFunc %p returned 1\n", s->SlotFunc);
@ -365,6 +375,7 @@ static inline TmEcode TmThreadsSlotVarRun (ThreadVars *tv, Packet *p, TmSlot *sl
/* see if we need to process the packet */
if (s->slot_next != NULL) {
r = TmThreadsSlotVarRun(tv, extra_p, s->slot_next);
//printf("%s: TmThreadsSlotvarrun: run r %" PRId32 "\n", tv->name, r);
/* XXX handle error */
if (r == TM_ECODE_FAILED) {
//printf("TmThreadsSlotVarRun: recursive TmThreadsSlotVarRun returned 1\n");
@ -397,6 +408,7 @@ void *TmThreadsSlotVar(void *td) {
for (slot = s->s; slot != NULL; slot = slot->slot_next) {
if (slot->SlotThreadInit != NULL) {
r = slot->SlotThreadInit(tv, slot->slot_initdata, &slot->slot_data);
//printf("%s: TmThreadsSlotvar: init r %" PRId32 "\n", tv->name, r);
if (r != TM_ECODE_OK) {
EngineKill();
@ -420,6 +432,7 @@ void *TmThreadsSlotVar(void *td) {
//printf("%s: TmThreadsSlot1: p == NULL\n", tv->name);
} else {
r = TmThreadsSlotVarRun(tv, p, s->s);
//printf("%s: TmThreadsSlotvar: var run r %" PRId32 "\n", tv->name, r);
/* XXX handle error */
if (r == TM_ECODE_FAILED) {
//printf("TmThreadsSlotVar: TmThreadsSlotVarRun returned 1, breaking out of the loop.\n");
@ -598,7 +611,7 @@ ThreadVars *TmThreadCreate(char *name, char *inq_name, char *inqh_name,
Tmq *tmq = NULL;
Tmqh *tmqh = NULL;
SCLogDebug("creating thread \"%s\"...", name);
printf("creating thread \"%s\"...\n", name);
/* XXX create separate function for this: allocate a thread container */
tv = malloc(sizeof(ThreadVars));
@ -776,7 +789,7 @@ void TmThreadKillThreads(void) {
while (tv) {
TmThreadsSetFlag(tv, THV_KILL);
SCLogDebug("told thread %s to stop", tv->name);
printf("told thread %s to stop\n", tv->name);
/* XXX hack */
StreamMsgSignalQueueHack();
@ -798,7 +811,7 @@ void TmThreadKillThreads(void) {
int cnt = 0;
while (1) {
if (TmThreadsCheckFlag(tv, THV_CLOSED)) {
SCLogDebug("signalled the thread %" PRId32 " times", cnt);
printf("signalled the thread %" PRId32 " times\n", cnt);
break;
}
@ -810,14 +823,14 @@ void TmThreadKillThreads(void) {
usleep(100);
}
SCLogDebug("signalled tv->inq->id %" PRIu32 "", tv->inq->id);
printf("signalled tv->inq->id %" PRIu32 "\n", tv->inq->id);
}
if (tv->cond != NULL ) {
int cnt = 0;
while (1) {
if (TmThreadsCheckFlag(tv, THV_CLOSED)) {
SCLogDebug("signalled the thread %" PRId32 " times", cnt);
printf("signalled the thread %" PRId32 " times\n", cnt);
break;
}
@ -831,7 +844,7 @@ void TmThreadKillThreads(void) {
/* join it */
pthread_join(tv->t, NULL);
SCLogDebug("thread %s stopped", tv->name);
printf("thread %s stopped\n", tv->name);
tv = tv->next;
}
@ -1012,7 +1025,7 @@ static void TmThreadRestartThread(ThreadVars *tv)
{
if (tv->restarted >= THV_MAX_RESTARTS) {
printf("Warning: thread restarts exceeded threshhold limit for thread"
"\"%s\"", tv->name);
"\"%s\"\n", tv->name);
/* makes sense to reset the tv_aof to engine_exit?! */
// tv->aof = THV_ENGINE_EXIT;
return;
@ -1027,7 +1040,7 @@ static void TmThreadRestartThread(ThreadVars *tv)
}
tv->restarted++;
SCLogInfo("thread \"%s\" restarted", tv->name);
printf("thread \"%s\" restarted\n", tv->name);
return;
}

Loading…
Cancel
Save