From 8b06badbcfc3f3145f6d186b628010bbd7a42027 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 27 May 2016 16:02:06 +0200 Subject: [PATCH] stream-tcp: no longer register as a thread module Now that the FlowWorker handles the TCP Stream directly, having the TCP engine as a thread module is no longer needed. This patch removes the registration. --- src/runmode-unittests.c | 3 +++ src/stream-tcp.c | 29 ----------------------------- src/stream-tcp.h | 7 ++++--- src/suricata.c | 2 -- 4 files changed, 7 insertions(+), 34 deletions(-) diff --git a/src/runmode-unittests.c b/src/runmode-unittests.c index 6f572d3fce..74e194afc0 100644 --- a/src/runmode-unittests.c +++ b/src/runmode-unittests.c @@ -66,6 +66,8 @@ #include "ippair-bit.h" #include "unix-manager.h" +#include "stream-tcp.h" + #include "app-layer-detect-proto.h" #include "app-layer-parser.h" #include "app-layer.h" @@ -193,6 +195,7 @@ void RunUnittests(int list_unittests, char *regex_arg) UtInitialize(); UTHRegisterTests(); + StreamTcpRegisterTests(); SCReputationRegisterTests(); TmModuleRegisterTests(); SigTableRegisterTests(); diff --git a/src/stream-tcp.c b/src/stream-tcp.c index d1d1470bf3..ac603e6ef7 100644 --- a/src/stream-tcp.c +++ b/src/stream-tcp.c @@ -93,12 +93,7 @@ #define STREAMTCP_EMERG_EST_TIMEOUT 300 #define STREAMTCP_EMERG_CLOSED_TIMEOUT 20 -TmEcode StreamTcp (ThreadVars *, Packet *, void *, PacketQueue *, PacketQueue *); -TmEcode StreamTcpThreadInit(ThreadVars *, void *, void **); -TmEcode StreamTcpThreadDeinit(ThreadVars *, void *); -void StreamTcpExitPrintStats(ThreadVars *, void *); static int StreamTcpHandleFin(ThreadVars *tv, StreamTcpThread *, TcpSession *, Packet *, PacketQueue *); -void StreamTcpRegisterTests (void); void StreamTcpReturnStreamSegments (TcpStream *); void StreamTcpInitConfig(char); int StreamTcpGetFlowState(void *); @@ -122,18 +117,6 @@ SC_ATOMIC_DECLARE(uint64_t, st_memuse); /* stream engine running in "inline" mode. */ int stream_inline = 0; -void TmModuleStreamTcpRegister (void) -{ - tmm_modules[TMM_STREAMTCP].name = "StreamTcp"; - tmm_modules[TMM_STREAMTCP].ThreadInit = StreamTcpThreadInit; - tmm_modules[TMM_STREAMTCP].Func = StreamTcp; - tmm_modules[TMM_STREAMTCP].ThreadExitPrintStats = StreamTcpExitPrintStats; - tmm_modules[TMM_STREAMTCP].ThreadDeinit = StreamTcpThreadDeinit; - tmm_modules[TMM_STREAMTCP].RegisterTests = StreamTcpRegisterTests; - tmm_modules[TMM_STREAMTCP].cap_flags = 0; - tmm_modules[TMM_STREAMTCP].flags = TM_FLAG_STREAM_TM; -} - void StreamTcpIncrMemuse(uint64_t size) { (void) SC_ATOMIC_ADD(st_memuse, size); @@ -4896,8 +4879,6 @@ TmEcode StreamTcp (ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Packe (void)StreamTcpPacket(tv, p, stt, pq); - stt->pkts++; - return TM_ECODE_OK; } @@ -4983,16 +4964,6 @@ TmEcode StreamTcpThreadDeinit(ThreadVars *tv, void *data) SCReturnInt(TM_ECODE_OK); } -void StreamTcpExitPrintStats(ThreadVars *tv, void *data) -{ - StreamTcpThread *stt = (StreamTcpThread *)data; - if (stt == NULL) { - return; - } - - SCLogInfo("Stream TCP processed %" PRIu64 " TCP packets", stt->pkts); -} - /** * \brief Function to check the validity of the RST packets based on the * target OS of the given packet. diff --git a/src/stream-tcp.h b/src/stream-tcp.h index e23d9eab71..57e8abc411 100644 --- a/src/stream-tcp.h +++ b/src/stream-tcp.h @@ -76,8 +76,6 @@ typedef struct TcpStreamCnf_ { typedef struct StreamTcpThread_ { int ssn_pool_id; - uint64_t pkts; - /** queue for pseudo packet(s) that were created in the stream * process and need further handling. Currently only used when * receiving (valid) RST packets */ @@ -108,7 +106,6 @@ typedef struct StreamTcpThread_ { } StreamTcpThread; TcpStreamCnf stream_config; -void TmModuleStreamTcpRegister (void); void StreamTcpInitConfig (char); void StreamTcpFreeConfig(char); void StreamTcpRegisterTests (void); @@ -217,8 +214,12 @@ static inline int StreamNeedsReassembly(TcpSession *ssn, int direction) } } +TmEcode StreamTcp (ThreadVars *, Packet *, void *, PacketQueue *, PacketQueue *); +void StreamTcpExitPrintStats(ThreadVars *, void *); TmEcode StreamTcpThreadInit(ThreadVars *, void *, void **); TmEcode StreamTcpThreadDeinit(ThreadVars *tv, void *data); +void StreamTcpRegisterTests (void); + int StreamTcpPacket (ThreadVars *tv, Packet *p, StreamTcpThread *stt, PacketQueue *pq); /* clear ssn and return to pool */ diff --git a/src/suricata.c b/src/suricata.c index ecb1690e1e..b619233ca3 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -859,8 +859,6 @@ void RegisterAllModules() /* flow worker */ TmModuleFlowWorkerRegister(); - /* stream engine */ - TmModuleStreamTcpRegister(); /* detection */ TmModuleDetectRegister(); /* respond-reject */ -- 2.47.2