#482 - use decode_flag for all decode TMs. Use the flag as a way to retrieve decode TMs from ThreadVars

remotes/origin/HEAD
Anoop Saldanha 13 years ago committed by Victor Julien
parent 0d602d9cde
commit bc6cf43840

@ -685,7 +685,27 @@ void FlowForceReassemblySetup(void)
stream_pseudo_pkt_detect_TV = NULL;
}
stream_pseudo_pkt_decode_tm_slot = TmThreadGetFirstTmSlotForPartialPattern("Decode");
SCMutexLock(&tv_root_lock);
ThreadVars *tv = tv_root[TVT_PPT];
int done = 0;
while (tv) {
TmSlot *slots = tv->tm_slots;
while (slots) {
TmModule *tm = TmModuleGetById(slots->tm_id);
if (tm->flags & TM_FLAG_DECODE_TM) {
done = 1;
stream_pseudo_pkt_decode_tm_slot = slots;
break;
}
slots = slots->slot_next;
}
if (done)
break;
tv = tv->next;
}
SCMutexUnlock(&tv_root_lock);
if (stream_pseudo_pkt_decode_tm_slot == NULL) {
/* yes, this is fatal! */
SCLogError(SC_ERR_TM_MODULES_ERROR, "Looks like we have failed to "

@ -106,6 +106,7 @@ void TmModuleDecodeAFPRegister (void) {
tmm_modules[TMM_DECODEAFP].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEAFP].RegisterTests = NULL;
tmm_modules[TMM_DECODEAFP].cap_flags = 0;
tmm_modules[TMM_DECODEAFP].flags = TM_FLAG_DECODE_TM;
}
/**
@ -226,6 +227,7 @@ void TmModuleDecodeAFPRegister (void) {
tmm_modules[TMM_DECODEAFP].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEAFP].RegisterTests = NULL;
tmm_modules[TMM_DECODEAFP].cap_flags = 0;
tmm_modules[TMM_DECODEAFP].flags = TM_FLAG_DECODE_TM;
}
static int AFPCreateSocket(AFPThreadVars *ptv, char *devname, int verbose);

@ -56,6 +56,7 @@ void TmModuleDecodeErfDagRegister (void) {
tmm_modules[TMM_DECODEERFDAG].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEERFDAG].RegisterTests = NULL;
tmm_modules[TMM_DECODEERFDAG].cap_flags = 0;
tmm_modules[TMM_DECODEERFDAG].flags = TM_FLAG_DECODE_TM;
}
TmEcode NoErfDagSupportExit(ThreadVars *tv, void *initdata, void **data)
@ -137,6 +138,7 @@ TmModuleDecodeErfDagRegister(void)
tmm_modules[TMM_DECODEERFDAG].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEERFDAG].RegisterTests = NULL;
tmm_modules[TMM_DECODEERFDAG].cap_flags = 0;
tmm_modules[TMM_DECODEERFDAG].flags = TM_FLAG_DECODE_TM;
}
/**

@ -101,6 +101,7 @@ TmModuleDecodeErfFileRegister(void)
tmm_modules[TMM_DECODEERFFILE].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEERFFILE].RegisterTests = NULL;
tmm_modules[TMM_DECODEERFFILE].cap_flags = 0;
tmm_modules[TMM_DECODEERFFILE].flags = TM_FLAG_DECODE_TM;
}
/**

@ -83,6 +83,7 @@ void TmModuleDecodeIPFWRegister (void) {
tmm_modules[TMM_DECODEIPFW].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEIPFW].RegisterTests = NULL;
tmm_modules[TMM_DECODEIPFW].cap_flags = 0;
tmm_modules[TMM_DECODEIPFW].flags = TM_FLAG_DECODE_TM;
}
TmEcode NoIPFWSupportExit(ThreadVars *tv, void *initdata, void **data) {
@ -185,6 +186,7 @@ void TmModuleDecodeIPFWRegister (void) {
tmm_modules[TMM_DECODEIPFW].ThreadExitPrintStats = NULL;
tmm_modules[TMM_DECODEIPFW].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEIPFW].RegisterTests = NULL;
tmm_modules[TMM_DECODEIPFW].flags = TM_FLAG_DECODE_TM;
}
static inline void IPFWMutexInit(IPFWQueueVars *nq)

@ -60,6 +60,7 @@ void TmModuleNapatechDecodeRegister (void) {
tmm_modules[TMM_DECODENAPATECH].ThreadDeinit = NULL;
tmm_modules[TMM_DECODENAPATECH].RegisterTests = NULL;
tmm_modules[TMM_DECODENAPATECH].cap_flags = 0;
tmm_modules[TMM_DECODENAPATECH].flags = TM_FLAG_DECODE_TM;
}
TmEcode NoNapatechSupportExit(ThreadVars *tv, void *initdata, void **data)
@ -127,6 +128,7 @@ void TmModuleNapatechDecodeRegister(void)
tmm_modules[TMM_DECODENAPATECH].ThreadDeinit = NULL;
tmm_modules[TMM_DECODENAPATECH].RegisterTests = NULL;
tmm_modules[TMM_DECODENAPATECH].cap_flags = 0;
tmm_modules[TMM_DECODENAPATECH].flags = TM_FLAG_DECODE_TM;
}
/**

@ -91,6 +91,7 @@ void TmModuleDecodeNFQRegister (void) {
tmm_modules[TMM_DECODENFQ].ThreadDeinit = NULL;
tmm_modules[TMM_DECODENFQ].RegisterTests = NULL;
tmm_modules[TMM_DECODENFQ].cap_flags = 0;
tmm_modules[TMM_DECODENFQ].flags = TM_FLAG_DECODE_TM;
}
TmEcode NoNFQSupportExit(ThreadVars *tv, void *initdata, void **data)
@ -195,6 +196,7 @@ void TmModuleDecodeNFQRegister (void) {
tmm_modules[TMM_DECODENFQ].ThreadExitPrintStats = NULL;
tmm_modules[TMM_DECODENFQ].ThreadDeinit = NULL;
tmm_modules[TMM_DECODENFQ].RegisterTests = NULL;
tmm_modules[TMM_DECODENFQ].flags = TM_FLAG_DECODE_TM;
}
/** \brief To initialize the NFQ global configuration data

@ -113,6 +113,7 @@ void TmModuleDecodePcapFileRegister (void) {
tmm_modules[TMM_DECODEPCAPFILE].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEPCAPFILE].RegisterTests = NULL;
tmm_modules[TMM_DECODEPCAPFILE].cap_flags = 0;
tmm_modules[TMM_DECODEPCAPFILE].flags = TM_FLAG_DECODE_TM;
}
void PcapFileCallbackLoop(char *user, struct pcap_pkthdr *h, u_char *pkt) {

@ -133,6 +133,7 @@ void TmModuleDecodePcapRegister (void) {
tmm_modules[TMM_DECODEPCAP].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEPCAP].RegisterTests = NULL;
tmm_modules[TMM_DECODEPCAP].cap_flags = 0;
tmm_modules[TMM_DECODEPCAP].flags = TM_FLAG_DECODE_TM;
}
#if LIBPCAP_VERSION_MAJOR == 1

@ -83,6 +83,7 @@ void TmModuleDecodePfringRegister (void) {
tmm_modules[TMM_DECODEPFRING].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEPFRING].RegisterTests = NULL;
tmm_modules[TMM_DECODEPFRING].cap_flags = 0;
tmm_modules[TMM_DECODEPFRING].flags = TM_FLAG_DECODE_TM;
}
/**
@ -166,6 +167,7 @@ void TmModuleDecodePfringRegister (void) {
tmm_modules[TMM_DECODEPFRING].ThreadExitPrintStats = NULL;
tmm_modules[TMM_DECODEPFRING].ThreadDeinit = NULL;
tmm_modules[TMM_DECODEPFRING].RegisterTests = NULL;
tmm_modules[TMM_DECODEPFRING].flags = TM_FLAG_DECODE_TM;
}
/**

@ -29,6 +29,7 @@
/* thread flags */
#define TM_FLAG_RECEIVE_TM 0x01
#define TM_FLAG_DECODE_TM 0x02
typedef struct TmModule_ {
char *name;

Loading…
Cancel
Save