Add new flags var to tm module. TMs can now set flags to identify special properties. Also use these to identify receive TMs

remotes/origin/master-1.1.x
Anoop Saldanha 14 years ago committed by Victor Julien
parent 54f6e4ff4d
commit 3f1c4efceb

@ -86,6 +86,7 @@ void TmModuleReceiveAFPRegister (void) {
tmm_modules[TMM_RECEIVEAFP].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVEAFP].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEAFP].cap_flags = 0;
tmm_modules[TMM_RECEIVEAFP].flags = TM_FLAG_RECEIVE_TM;
}
/**

@ -45,6 +45,7 @@ void TmModuleReceiveErfDagRegister (void) {
tmm_modules[TMM_RECEIVEERFDAG].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVEERFDAG].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEERFDAG].cap_flags = SC_CAP_NET_ADMIN;
tmm_modules[TMM_RECEIVEERFDAG].flags = TM_FLAG_RECEIVE_TM;
}
void TmModuleDecodeErfDagRegister (void) {

@ -81,6 +81,7 @@ TmModuleReceiveErfFileRegister(void)
tmm_modules[TMM_RECEIVEERFFILE].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVEERFFILE].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEERFFILE].cap_flags = 0;
tmm_modules[TMM_RECEIVEERFFILE].flags = TM_FLAG_RECEIVE_TM;
}
/**

@ -61,6 +61,7 @@ void TmModuleReceiveIPFWRegister (void) {
tmm_modules[TMM_RECEIVEIPFW].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEIPFW].cap_flags = SC_CAP_NET_ADMIN | SC_CAP_NET_RAW |
SC_CAP_NET_BIND_SERVICE | SC_CAP_NET_BROADCAST; /** \todo untested */
tmm_modules[TMM_RECEIVEIPFW].flags = TM_FLAG_RECEIVE_TM;
}
void TmModuleVerdictIPFWRegister (void) {

@ -65,6 +65,7 @@ void TmModuleReceiveNFQRegister (void) {
tmm_modules[TMM_RECEIVENFQ].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVENFQ].RegisterTests = NULL;
tmm_modules[TMM_RECEIVENFQ].cap_flags = SC_CAP_NET_ADMIN;
tmm_modules[TMM_RECEIVENFQ].flags = TM_FLAG_RECEIVE_TM;
}
void TmModuleVerdictNFQRegister (void) {

@ -97,6 +97,7 @@ void TmModuleReceivePcapFileRegister (void) {
tmm_modules[TMM_RECEIVEPCAPFILE].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVEPCAPFILE].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEPCAPFILE].cap_flags = 0;
tmm_modules[TMM_RECEIVEPCAPFILE].flags = TM_FLAG_RECEIVE_TM;
}
void TmModuleDecodePcapFileRegister (void) {

@ -107,6 +107,7 @@ void TmModuleReceivePcapRegister (void) {
tmm_modules[TMM_RECEIVEPCAP].ThreadDeinit = NULL;
tmm_modules[TMM_RECEIVEPCAP].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEPCAP].cap_flags = SC_CAP_NET_RAW;
tmm_modules[TMM_RECEIVEPCAP].flags = TM_FLAG_RECEIVE_TM;
}
/**

@ -69,6 +69,7 @@ void TmModuleReceivePfringRegister (void) {
tmm_modules[TMM_RECEIVEPFRING].RegisterTests = NULL;
tmm_modules[TMM_RECEIVEPFRING].cap_flags = SC_CAP_NET_ADMIN | SC_CAP_NET_RAW |
SC_CAP_NET_BIND_SERVICE | SC_CAP_NET_BROADCAST;
tmm_modules[TMM_RECEIVEPFRING].flags = TM_FLAG_RECEIVE_TM;
}
void TmModuleDecodePfringRegister (void) {

@ -27,6 +27,9 @@
#include "tm-threads-common.h"
#include "threadvars.h"
/* thread flags */
#define TM_FLAG_RECEIVE_TM 0x01
typedef struct TmModule_ {
char *name;
@ -44,6 +47,8 @@ typedef struct TmModule_ {
uint8_t cap_flags; /**< Flags to indicate the capability requierment of
the given TmModule */
/* Other flags used by the module */
uint8_t flags;
} TmModule;
TmModule tmm_modules[TMM_SIZE];

@ -1444,11 +1444,10 @@ void TmThreadDisableReceiveThreads(void)
TmSlot *slots = tv->tm_slots;
TmModule *tm = TmModuleGetById(slots->tm_id);
/* Kind of a hack. All packet_acquire/receive TMs in our engine
* have the string "receive" as a substring in their name */
char *found = strcasestr(tm->name, "receive");
if (found == NULL)
break;
if (!tm->flags & TM_FLAG_RECEIVE_TM) {
tv = tv->next;
continue;
}
/* we found our receive TV. Send it a KILL signal. This is all
* we need to do to kill receive threads */

Loading…
Cancel
Save