From 262a7300d701c44dba13bb2aaa2b14bed3485383 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Sun, 27 Nov 2011 16:15:58 +0100 Subject: [PATCH] flow: shrink Flow datatype Introduce a separate FlowAddress structure for holding the ipv4 or ipv6 address that doesn't have the family in it like the Address structure. Instead, the family is stored in the flow as a flag: FLOW_IPV4 and FLOW_IPV6. Add macro's to check the family, copy the address, etc. Update many unittests to reflect these changes. Introduce unittest helper functions for creating and initializing a flow and freeing it again. On 64 bit this shrinks the flow with 8 bytes. --- src/app-layer-detect-proto.c | 116 ++++++------ src/app-layer-htp.c | 188 ++++++++++--------- src/app-layer-parser.c | 74 +++----- src/detect-engine-dcepayload.c | 78 +++----- src/detect-engine-hcbd.c | 84 +++------ src/detect-engine-hcd.c | 51 ++---- src/detect-engine-hhd.c | 81 +++----- src/detect-engine-hmd.c | 51 ++---- src/detect-engine-hrhd.c | 81 +++----- src/detect-engine-hrud.c | 90 +++------ src/detect-engine-state.c | 6 +- src/detect-engine-uri.c | 96 ++++------ src/detect-http-client-body.c | 30 +-- src/detect-http-cookie.c | 21 +-- src/detect-http-header.c | 24 +-- src/detect-http-method.c | 12 +- src/detect-http-raw-header.c | 24 +-- src/detect-http-stat-code.c | 12 +- src/detect-http-stat-msg.c | 9 +- src/detect-pcre.c | 36 ++-- src/detect-tag.c | 6 +- src/detect-uricontent.c | 27 +-- src/detect-urilen.c | 3 +- src/detect.c | 30 +-- src/flow-timeout.c | 44 +++-- src/flow-util.c | 26 +-- src/flow.h | 92 +++++++++- src/stream-tcp-reassemble.c | 325 ++++++++------------------------- src/util-unittest-helper.c | 48 +++++ src/util-unittest-helper.h | 3 + 30 files changed, 725 insertions(+), 1043 deletions(-) diff --git a/src/app-layer-detect-proto.c b/src/app-layer-detect-proto.c index f2990d1324..37a6da04f4 100644 --- a/src/app-layer-detect-proto.c +++ b/src/app-layer-detect-proto.c @@ -1521,7 +1521,7 @@ int AlpDetectTest14(void) { static int AlpDetectTestSig1(void) { int result = 0; - Flow f; + Flow *f = NULL; HtpState *http_state = NULL; uint8_t http_buf1[] = "POST /one HTTP/1.0\r\n" "User-Agent: Mozilla/1.0\r\n" @@ -1534,21 +1534,27 @@ static int AlpDetectTestSig1(void) DetectEngineThreadCtx *det_ctx = NULL; memset(&tv, 0, sizeof(ThreadVars)); - memset(&f, 0, sizeof(Flow)); memset(&ssn, 0, sizeof(TcpSession)); p = UTHBuildPacket(NULL, 0, IPPROTO_TCP); + if (p == NULL) { + printf("packet setup failed: "); + goto end; + } - FLOW_INITIALIZE(&f); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) { + printf("flow setup failed: "); + goto end; + } + f->protoctx = &ssn; + p->flow = f; - p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; - f.alproto = ALPROTO_HTTP; + + f->alproto = ALPROTO_HTTP; StreamTcpInitConfig(TRUE); @@ -1569,13 +1575,13 @@ static int AlpDetectTestSig1(void) SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); goto end; @@ -1588,9 +1594,7 @@ static int AlpDetectTestSig1(void) printf("sig 1 didn't alert, but it should: "); goto end; } - result = 1; - end: if (det_ctx != NULL) DetectEngineThreadCtxDeinit(&tv, det_ctx); @@ -1600,9 +1604,9 @@ end: DetectEngineCtxFree(de_ctx); StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); UTHFreePackets(&p, 1); + UTHFreeFlow(f); return result; } @@ -1611,7 +1615,7 @@ end: static int AlpDetectTestSig2(void) { int result = 0; - Flow f; + Flow *f = NULL; HtpState *http_state = NULL; uint8_t http_buf1[] = "POST /one HTTP/1.0\r\n" "User-Agent: Mozilla/1.0\r\n" @@ -1624,21 +1628,19 @@ static int AlpDetectTestSig2(void) DetectEngineThreadCtx *det_ctx = NULL; memset(&tv, 0, sizeof(ThreadVars)); - memset(&f, 0, sizeof(Flow)); memset(&ssn, 0, sizeof(TcpSession)); p = UTHBuildPacketSrcDstPorts(http_buf1, http_buf1_len, IPPROTO_TCP, 12345, 88); - FLOW_INITIALIZE(&f); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; - - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; - f.alproto = ALPROTO_HTTP; + f->alproto = ALPROTO_HTTP; StreamTcpInitConfig(TRUE); @@ -1659,13 +1661,13 @@ static int AlpDetectTestSig2(void) SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); goto end; @@ -1690,9 +1692,9 @@ end: DetectEngineCtxFree(de_ctx); StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); UTHFreePackets(&p, 1); + UTHFreeFlow(f); return result; } @@ -1701,7 +1703,7 @@ end: static int AlpDetectTestSig3(void) { int result = 0; - Flow f; + Flow *f = NULL; HtpState *http_state = NULL; uint8_t http_buf1[] = "POST /one HTTP/1.0\r\n" "User-Agent: Mozilla/1.0\r\n" @@ -1714,21 +1716,19 @@ static int AlpDetectTestSig3(void) DetectEngineThreadCtx *det_ctx = NULL; memset(&tv, 0, sizeof(ThreadVars)); - memset(&f, 0, sizeof(Flow)); memset(&ssn, 0, sizeof(TcpSession)); p = UTHBuildPacket(http_buf1, http_buf1_len, IPPROTO_TCP); - FLOW_INITIALIZE(&f); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; - - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; - f.alproto = ALPROTO_HTTP; + f->alproto = ALPROTO_HTTP; StreamTcpInitConfig(TRUE); @@ -1749,13 +1749,13 @@ static int AlpDetectTestSig3(void) SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); goto end; @@ -1779,9 +1779,9 @@ end: DetectEngineCtxFree(de_ctx); StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); UTHFreePackets(&p, 1); + UTHFreeFlow(f); return result; } @@ -1790,7 +1790,7 @@ end: static int AlpDetectTestSig4(void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t http_buf1[] = "MPUT one\r\n"; uint32_t http_buf1_len = sizeof(http_buf1) - 1; TcpSession ssn; @@ -1800,21 +1800,19 @@ static int AlpDetectTestSig4(void) DetectEngineThreadCtx *det_ctx = NULL; memset(&tv, 0, sizeof(ThreadVars)); - memset(&f, 0, sizeof(Flow)); memset(&ssn, 0, sizeof(TcpSession)); p = UTHBuildPacketSrcDstPorts(http_buf1, http_buf1_len, IPPROTO_TCP, 12345, 88); - FLOW_INITIALIZE(&f); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; - - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; - f.alproto = ALPROTO_FTP; + f->alproto = ALPROTO_FTP; StreamTcpInitConfig(TRUE); @@ -1835,7 +1833,7 @@ static int AlpDetectTestSig4(void) SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx); - int r = AppLayerParse(&f, ALPROTO_FTP, STREAM_TOSERVER, http_buf1, http_buf1_len); + int r = AppLayerParse(f, ALPROTO_FTP, STREAM_TOSERVER, http_buf1, http_buf1_len); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); goto end; @@ -1860,8 +1858,8 @@ end: DetectEngineCtxFree(de_ctx); StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); UTHFreePackets(&p, 1); + UTHFreeFlow(f); return result; } @@ -1870,7 +1868,7 @@ end: static int AlpDetectTestSig5(void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t http_buf1[] = "POST /one HTTP/1.0\r\n" "User-Agent: Mozilla/1.0\r\n" "Cookie: hellocatch\r\n\r\n"; @@ -1882,22 +1880,20 @@ static int AlpDetectTestSig5(void) DetectEngineThreadCtx *det_ctx = NULL; memset(&tv, 0, sizeof(ThreadVars)); - memset(&f, 0, sizeof(Flow)); memset(&ssn, 0, sizeof(TcpSession)); p = UTHBuildPacket(http_buf1, http_buf1_len, IPPROTO_TCP); - FLOW_INITIALIZE(&f); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; - - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; - f.alproto = ALPROTO_HTTP; - f.proto = IPPROTO_TCP; + f->alproto = ALPROTO_HTTP; + f->proto = IPPROTO_TCP; p->flags |= PKT_STREAM_ADD; p->flags |= PKT_STREAM_EOF; @@ -1933,7 +1929,7 @@ static int AlpDetectTestSig5(void) SigGroupBuild(de_ctx); DetectEngineThreadCtxInit(&tv, (void *)de_ctx, (void *)&det_ctx); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER, http_buf1, http_buf1_len); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); goto end; @@ -1958,8 +1954,8 @@ end: DetectEngineCtxFree(de_ctx); StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); UTHFreePackets(&p, 1); + UTHFreeFlow(f); return result; } diff --git a/src/app-layer-htp.c b/src/app-layer-htp.c index f694ef45c2..de69377141 100644 --- a/src/app-layer-htp.c +++ b/src/app-layer-htp.c @@ -318,11 +318,11 @@ static int HTPHandleRequestData(Flow *f, void *htp_state, htp_cfg_t *htp = cfglist.cfg; /* Default to the global HTP config */ SCRadixNode *cfgnode = NULL; - if (AF_INET == f->dst.family) { + if (FLOW_IS_IPV4(f)) { SCLogDebug("Looking up HTP config for ipv4 %08x", *GET_IPV4_DST_ADDR_PTR(f)); cfgnode = SCRadixFindKeyIPV4BestMatch((uint8_t *)GET_IPV4_DST_ADDR_PTR(f), cfgtree); } - else if (AF_INET6 == f->dst.family) { + else if (FLOW_IS_IPV6(f)) { SCLogDebug("Looking up HTP config for ipv6"); cfgnode = SCRadixFindKeyIPV6BestMatch((uint8_t *)GET_IPV6_DST_ADDR(f), cfgtree); } @@ -1245,19 +1245,20 @@ static void HtpConfigRestoreBackup(void) * response of the parser from HTP library. */ int HTPParserTest01(void) { int result = 1; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\nPost" " Data is c0oL!"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; - HtpState *htp_state = NULL; int r = 0; - memset(&f, 0, sizeof(f)); + memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); @@ -1269,7 +1270,7 @@ int HTPParserTest01(void) { else if (u == (httplen1 - 1)) flags = STREAM_TOSERVER|STREAM_EOF; else flags = STREAM_TOSERVER; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); if (r != 0) { printf("toserver chunk %" PRIu32 " returned %" PRId32 ", expected" " 0: ", u, r); @@ -1278,7 +1279,7 @@ int HTPParserTest01(void) { } } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -1308,27 +1309,29 @@ end: StreamTcpFreeConfig(TRUE); if (htp_state != NULL) HTPStateFree(htp_state); + UTHFreeFlow(f); return result; } /** \test See how it deals with an incomplete request. */ int HTPParserTest02(void) { int result = 1; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "POST"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; HtpState *http_state = NULL; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START| + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START| STREAM_EOF, httpbuf1, httplen1); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); @@ -1336,7 +1339,7 @@ int HTPParserTest02(void) { goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); result = 0; @@ -1360,6 +1363,7 @@ end: StreamTcpFreeConfig(TRUE); if (http_state != NULL) HTPStateFree(http_state); + UTHFreeFlow(f); return result; } @@ -1367,18 +1371,19 @@ end: * and check the response of the parser from HTP library. */ int HTPParserTest03(void) { int result = 1; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "HELLO / HTTP/1.0\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; HtpState *htp_state = NULL; int r = 0; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); @@ -1390,7 +1395,7 @@ int HTPParserTest03(void) { else if (u == (httplen1 - 1)) flags = STREAM_TOSERVER|STREAM_EOF; else flags = STREAM_TOSERVER; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); if (r != 0) { printf("toserver chunk %" PRIu32 " returned %" PRId32 ", expected" " 0: ", u, r); @@ -1398,7 +1403,7 @@ int HTPParserTest03(void) { goto end; } } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -1425,6 +1430,7 @@ end: StreamTcpFreeConfig(TRUE); if (htp_state != NULL) HTPStateFree(htp_state); + UTHFreeFlow(f); return result; } @@ -1432,27 +1438,29 @@ end: * parser from HTP library. */ int HTPParserTest04(void) { int result = 1; - Flow f; + Flow *f = NULL; HtpState *htp_state = NULL; uint8_t httpbuf1[] = "World!\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; int r = 0; - memset(&f, 0, sizeof(f)); + memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START| + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START| STREAM_EOF, httpbuf1, httplen1); if (r != 0) { goto end; } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -1479,6 +1487,7 @@ end: StreamTcpFreeConfig(TRUE); if (htp_state != NULL) HTPStateFree(htp_state); + UTHFreeFlow(f); return result; } @@ -1486,7 +1495,7 @@ end: * properly parsed them and also keeps them separated. */ int HTPParserTest05(void) { int result = 1; - Flow f; + Flow *f = NULL; HtpState *http_state = NULL; uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ @@ -1503,15 +1512,16 @@ int HTPParserTest05(void) { uint32_t httplen6 = sizeof(httpbuf6) - 1; /* minus the \0 */ TcpSession ssn; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START, + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START, httpbuf1, httplen1); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); @@ -1519,7 +1529,7 @@ int HTPParserTest05(void) { goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_START, httpbuf4, + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_START, httpbuf4, httplen4); if (r != 0) { printf("toserver chunk 4 returned %" PRId32 ", expected 0: ", r); @@ -1527,21 +1537,21 @@ int HTPParserTest05(void) { goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOCLIENT, httpbuf5, httplen5); + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOCLIENT, httpbuf5, httplen5); if (r != 0) { printf("toserver chunk 5 returned %" PRId32 ", expected 0: ", r); result = 0; goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER, httpbuf2, httplen2); + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER, httpbuf2, httplen2); if (r != 0) { printf("toserver chunk 2 returned %" PRId32 ", expected 0: ", r); result = 0; goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_EOF, httpbuf3, + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_EOF, httpbuf3, httplen3); if (r != 0) { printf("toserver chunk 3 returned %" PRId32 ", expected 0: ", r); @@ -1549,7 +1559,7 @@ int HTPParserTest05(void) { goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_EOF, httpbuf6, + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_EOF, httpbuf6, httplen6); if (r != 0) { printf("toserver chunk 6 returned %" PRId32 ", expected 0: ", r); @@ -1557,7 +1567,7 @@ int HTPParserTest05(void) { goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); result = 0; @@ -1592,6 +1602,7 @@ end: StreamTcpFreeConfig(TRUE); if (http_state != NULL) HTPStateFree(http_state); + UTHFreeFlow(f); return result; } @@ -1599,7 +1610,7 @@ end: */ int HTPParserTest06(void) { int result = 1; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "GET /ld/index.php?id=412784631&cid=0064&version=4&" "name=try HTTP/1.1\r\nAccept: */*\r\nUser-Agent: " "LD-agent\r\nHost: 209.205.196.16\r\n\r\n"; @@ -1645,16 +1656,16 @@ int HTPParserTest06(void) { TcpSession ssn; HtpState *http_state = NULL; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); - int r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START, + int r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOSERVER|STREAM_START, httpbuf1, httplen1); if (r != 0) { printf("toserver chunk 1 returned %" PRId32 ", expected 0: ", r); @@ -1662,7 +1673,7 @@ int HTPParserTest06(void) { goto end; } - r = AppLayerParse(&f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_START, httpbuf2, + r = AppLayerParse(f, ALPROTO_HTTP, STREAM_TOCLIENT|STREAM_START, httpbuf2, httplen2); if (r != 0) { printf("toclient chunk 2 returned %" PRId32 ", expected 0: ", r); @@ -1670,7 +1681,7 @@ int HTPParserTest06(void) { goto end; } - http_state = f.alstate; + http_state = f->alstate; if (http_state == NULL) { printf("no http state: "); result = 0; @@ -1707,6 +1718,7 @@ end: StreamTcpFreeConfig(TRUE); if (http_state != NULL) HTPStateFree(http_state); + UTHFreeFlow(f); return result; } @@ -1714,18 +1726,19 @@ end: */ int HTPParserTest07(void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "GET /awstats.pl?/migratemigrate%20=%20| HTTP/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; - HtpState *htp_state = NULL; int r = 0; - memset(&f, 0, sizeof(f)); + memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); @@ -1740,7 +1753,7 @@ int HTPParserTest07(void) { else flags = STREAM_TOSERVER; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); if (r != 0) { printf("toserver chunk %" PRIu32 " returned %" PRId32 ", expected" " 0: ", u, r); @@ -1748,7 +1761,7 @@ int HTPParserTest07(void) { } } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); goto end; @@ -1783,6 +1796,7 @@ end: StreamTcpFreeConfig(TRUE); if (htp_state != NULL) HTPStateFree(htp_state); + UTHFreeFlow(f); return result; } @@ -1792,7 +1806,7 @@ end: */ int HTPParserTest08(void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "GET /secondhouse/image/js/\%ce\%de\%ce\%fd_RentCity.js?v=2011.05.02 HTTP/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; @@ -1815,18 +1829,19 @@ libhtp:\n\ HtpState *htp_state = NULL; int r = 0; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); uint8_t flags = 0; flags = STREAM_TOSERVER|STREAM_START|STREAM_EOF; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, httpbuf1, httplen1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, httpbuf1, httplen1); if (r != 0) { printf("toserver chunk returned %" PRId32 ", expected" " 0: ", r); @@ -1834,7 +1849,7 @@ libhtp:\n\ goto end; } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -1858,6 +1873,7 @@ end: ConfDeInit(); ConfRestoreContextBackup(); HtpConfigRestoreBackup(); + UTHFreeFlow(f); return result; } @@ -1865,7 +1881,7 @@ end: */ int HTPParserTest09(void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t httpbuf1[] = "GET /secondhouse/image/js/\%ce\%de\%ce\%fd_RentCity.js?v=2011.05.02 HTTP/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ TcpSession ssn; @@ -1888,18 +1904,20 @@ libhtp:\n\ HtpState *htp_state = NULL; int r = 0; - memset(&f, 0, sizeof(f)); + memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; StreamTcpInitConfig(TRUE); uint8_t flags = 0; flags = STREAM_TOSERVER|STREAM_START|STREAM_EOF; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, httpbuf1, httplen1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, httpbuf1, httplen1); if (r != 0) { printf("toserver chunk returned %" PRId32 ", expected" " 0: ", r); @@ -1907,7 +1925,7 @@ libhtp:\n\ goto end; } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -1931,6 +1949,7 @@ end: ConfDeInit(); ConfRestoreContextBackup(); HtpConfigRestoreBackup(); + UTHFreeFlow(f); return result; } @@ -2216,8 +2235,7 @@ end: int HTPParserConfigTest03(void) { int result = 1; - Flow f; - FLOW_INITIALIZE(&f); + Flow *f = NULL; uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\nPost" " Data is c0oL!"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ @@ -2254,17 +2272,19 @@ libhtp:\n\ HTPConfigure(); - const char *addr = "192.168.10.42"; + char *addr = "192.168.10.42"; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - f.protoctx = (void *)&ssn; - f.dst.family = AF_INET; - inet_pton(f.dst.family, addr, f.dst.addr_data32); + + f = UTHBuildFlow(AF_INET, "1.2.3.4", addr, 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; SCRadixNode *cfgnode = NULL; htp_cfg_t *htp = cfglist.cfg; - cfgnode = SCRadixFindKeyIPV4BestMatch((uint8_t *)GET_IPV4_DST_ADDR_PTR(&f), cfgtree); + + cfgnode = SCRadixFindKeyIPV4BestMatch((uint8_t *)f->dst.addr_data32, cfgtree); if (cfgnode != NULL) { HTPCfgRec *htp_cfg_rec = SC_RADIX_NODE_USERDATA(cfgnode, HTPCfgRec); if (htp_cfg_rec != NULL) { @@ -2287,7 +2307,7 @@ libhtp:\n\ else if (u == (httplen1 - 1)) flags = STREAM_TOSERVER|STREAM_EOF; else flags = STREAM_TOSERVER; - r = AppLayerParse(&f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); + r = AppLayerParse(f, ALPROTO_HTTP, flags, &httpbuf1[u], 1); if (r != 0) { printf("toserver chunk %" PRIu32 " returned %" PRId32 ", expected" " 0: ", u, r); @@ -2296,7 +2316,7 @@ libhtp:\n\ } } - htp_state = f.alstate; + htp_state = f->alstate; if (htp_state == NULL) { printf("no http state: "); result = 0; @@ -2320,7 +2340,7 @@ end: StreamTcpFreeConfig(TRUE); if (htp_state != NULL) HTPStateFree(htp_state); - FLOW_DESTROY(&f); + UTHFreeFlow(f); return result; } diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index 6d76fb0ddc..02f373588c 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -55,6 +55,7 @@ #include "util-spm.h" #include "util-debug.h" +#include "util-unittest-helper.h" static AppLayerProto al_proto_table[ALPROTO_MAX]; /**< Application layer protocol table mapped to their @@ -915,7 +916,7 @@ error: FlowSetSessionNoApplayerInspectionFlag(f); AppLayerSetEOF(f); - if (f->src.family == AF_INET) { + if (FLOW_IS_IPV4(f)) { char src[16]; char dst[16]; PrintInet(AF_INET, (const void*)&f->src.addr_data32[0], src, @@ -930,7 +931,7 @@ error: "dst port %"PRIu16"", al_proto_table[f->alproto].name, f->proto, src, dst, f->sp, f->dp); fflush(stdout); - } else { + } else if (FLOW_IS_IPV6(f)) { char dst6[46]; char src6[46]; @@ -1827,19 +1828,12 @@ static void TestProtocolStateFree(void *s) static int AppLayerParserTest01 (void) { int result = 0; - Flow f; + Flow *f = NULL; uint8_t testbuf[] = { 0x11 }; uint32_t testlen = sizeof(testbuf); TcpSession ssn; - struct in_addr addr; - struct in_addr addr1; - Address src; - Address dst; - memset(&f, 0, sizeof(f)); memset(&ssn, 0, sizeof(ssn)); - memset(&src, 0, sizeof(src)); - memset(&dst, 0, sizeof(dst)); /* Register the Test protocol state and parser functions */ AppLayerRegisterProto("test", ALPROTO_TEST, STREAM_TOSERVER, @@ -1847,32 +1841,24 @@ static int AppLayerParserTest01 (void) AppLayerRegisterStateFuncs(ALPROTO_TEST, TestProtocolStateAlloc, TestProtocolStateFree); - FLOW_INITIALIZE(&f); - f.alproto = ALPROTO_TEST; - f.protoctx = (void *)&ssn; - - inet_pton(AF_INET, "1.2.3.4", &addr.s_addr); - src.family = AF_INET; - src.addr_data32[0] = addr.s_addr; - inet_pton(AF_INET, "4.3.2.1", &addr1.s_addr); - dst.family = AF_INET; - dst.addr_data32[0] = addr1.s_addr; - f.src = src; - f.dst = dst; - f.sp = htons(20); - f.dp = htons(40); - f.proto = IPPROTO_TCP; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "4.3.2.1", 20, 40); + if (f == NULL) + goto end; + f->protoctx = &ssn; + + f->alproto = ALPROTO_TEST; + f->proto = IPPROTO_TCP; StreamTcpInitConfig(TRUE); - int r = AppLayerParse(&f, ALPROTO_TEST, STREAM_TOSERVER|STREAM_EOF, testbuf, + int r = AppLayerParse(f, ALPROTO_TEST, STREAM_TOSERVER|STREAM_EOF, testbuf, testlen); if (r != -1) { printf("returned %" PRId32 ", expected -1: ", r); goto end; } - if (!(f.flags & FLOW_NO_APPLAYER_INSPECTION)) + if (!(f->flags & FLOW_NO_APPLAYER_INSPECTION)) { printf("flag should have been set, but is not: "); goto end; @@ -1881,7 +1867,8 @@ static int AppLayerParserTest01 (void) result = 1; end: StreamTcpFreeConfig(TRUE); - FLOW_DESTROY(&f); + + UTHFreeFlow(f); return result; } @@ -1891,17 +1878,9 @@ end: static int AppLayerParserTest02 (void) { int result = 1; - Flow f; + Flow *f = NULL; uint8_t testbuf[] = { 0x11 }; uint32_t testlen = sizeof(testbuf); - struct in_addr addr; - struct in_addr addr1; - Address src; - Address dst; - - memset(&f, 0, sizeof(f)); - memset(&src, 0, sizeof(src)); - memset(&dst, 0, sizeof(dst)); /* Register the Test protocol state and parser functions */ AppLayerRegisterProto("test", ALPROTO_TEST, STREAM_TOSERVER, @@ -1909,23 +1888,15 @@ static int AppLayerParserTest02 (void) AppLayerRegisterStateFuncs(ALPROTO_TEST, TestProtocolStateAlloc, TestProtocolStateFree); - f.alproto = ALPROTO_TEST; - - inet_pton(AF_INET, "1.2.3.4", &addr.s_addr); - src.family = AF_INET; - src.addr_data32[0] = addr.s_addr; - inet_pton(AF_INET, "4.3.2.1", &addr1.s_addr); - dst.family = AF_INET; - dst.addr_data32[0] = addr1.s_addr; - f.src = src; - f.dst = dst; - f.sp = htons(20); - f.dp = htons(40); - f.proto = IPPROTO_UDP; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "4.3.2.1", 20, 40); + if (f == NULL) + goto end; + f->alproto = ALPROTO_TEST; + f->proto = IPPROTO_UDP; StreamTcpInitConfig(TRUE); - int r = AppLayerParse(&f, ALPROTO_TEST, STREAM_TOSERVER|STREAM_EOF, testbuf, + int r = AppLayerParse(f, ALPROTO_TEST, STREAM_TOSERVER|STREAM_EOF, testbuf, testlen); if (r != -1) { printf("returned %" PRId32 ", expected -1: \n", r); @@ -1935,6 +1906,7 @@ static int AppLayerParserTest02 (void) end: StreamTcpFreeConfig(TRUE); + UTHFreeFlow(f); return result; } diff --git a/src/detect-engine-dcepayload.c b/src/detect-engine-dcepayload.c index 8d059e58b0..7aac2371bf 100644 --- a/src/detect-engine-dcepayload.c +++ b/src/detect-engine-dcepayload.c @@ -1699,8 +1699,7 @@ int DcePayloadTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -2562,8 +2561,7 @@ int DcePayloadTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -3006,8 +3004,7 @@ int DcePayloadTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -3450,8 +3447,7 @@ int DcePayloadTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -3893,8 +3889,7 @@ int DcePayloadTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -4337,8 +4332,7 @@ int DcePayloadTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -4780,8 +4774,7 @@ int DcePayloadTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -5060,8 +5053,7 @@ int DcePayloadTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -5280,8 +5272,7 @@ int DcePayloadTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -5500,8 +5491,7 @@ int DcePayloadTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -5855,8 +5845,7 @@ int DcePayloadTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -6224,8 +6213,7 @@ int DcePayloadTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -6408,8 +6396,7 @@ int DcePayloadTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -6646,8 +6633,7 @@ int DcePayloadTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -6814,8 +6800,7 @@ int DcePayloadTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -6924,8 +6909,7 @@ int DcePayloadTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7034,8 +7018,7 @@ int DcePayloadTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7144,8 +7127,7 @@ int DcePayloadTest18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7254,8 +7236,7 @@ int DcePayloadTest19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7364,8 +7345,7 @@ int DcePayloadTest20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7466,8 +7446,7 @@ int DcePayloadTest21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7561,8 +7540,7 @@ int DcePayloadTest22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7657,8 +7635,7 @@ int DcePayloadTest23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -7751,8 +7728,7 @@ int DcePayloadTest24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -9947,8 +9923,7 @@ int DcePayloadTest42(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); @@ -10043,8 +10018,7 @@ int DcePayloadTest43(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_DCERPC; StreamTcpInitConfig(TRUE); diff --git a/src/detect-engine-hcbd.c b/src/detect-engine-hcbd.c index 2093ef3e5b..64195bbd02 100644 --- a/src/detect-engine-hcbd.c +++ b/src/detect-engine-hcbd.c @@ -579,8 +579,7 @@ static int DetectEngineHttpClientBodyTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -694,8 +693,7 @@ static int DetectEngineHttpClientBodyTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -797,8 +795,7 @@ static int DetectEngineHttpClientBodyTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -915,8 +912,7 @@ static int DetectEngineHttpClientBodyTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1032,8 +1028,7 @@ static int DetectEngineHttpClientBodyTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1149,8 +1144,7 @@ static int DetectEngineHttpClientBodyTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1266,8 +1260,7 @@ static int DetectEngineHttpClientBodyTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1383,8 +1376,7 @@ static int DetectEngineHttpClientBodyTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1500,8 +1492,7 @@ static int DetectEngineHttpClientBodyTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1618,8 +1609,7 @@ static int DetectEngineHttpClientBodyTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1736,8 +1726,7 @@ static int DetectEngineHttpClientBodyTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1854,8 +1843,7 @@ static int DetectEngineHttpClientBodyTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1972,8 +1960,7 @@ static int DetectEngineHttpClientBodyTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2090,8 +2077,7 @@ static int DetectEngineHttpClientBodyTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2208,8 +2194,7 @@ static int DetectEngineHttpClientBodyTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2326,8 +2311,7 @@ static int DetectEngineHttpClientBodyTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2432,8 +2416,7 @@ static int DetectEngineHttpClientBodyTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2504,8 +2487,7 @@ static int DetectEngineHttpClientBodyTest18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2576,8 +2558,7 @@ static int DetectEngineHttpClientBodyTest19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2648,8 +2629,7 @@ static int DetectEngineHttpClientBodyTest20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2732,8 +2712,7 @@ static int DetectEngineHttpClientBodyTest21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2850,8 +2829,7 @@ static int DetectEngineHttpClientBodyTest22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2968,8 +2946,7 @@ static int DetectEngineHttpClientBodyTest23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3086,8 +3063,7 @@ static int DetectEngineHttpClientBodyTest24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3204,8 +3180,7 @@ static int DetectEngineHttpClientBodyTest25(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3322,8 +3297,7 @@ static int DetectEngineHttpClientBodyTest26(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3440,8 +3414,7 @@ static int DetectEngineHttpClientBodyTest27(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3558,8 +3531,7 @@ static int DetectEngineHttpClientBodyTest28(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-engine-hcd.c b/src/detect-engine-hcd.c index 139a982f3d..38c341ac60 100644 --- a/src/detect-engine-hcd.c +++ b/src/detect-engine-hcd.c @@ -452,8 +452,7 @@ static int DetectEngineHttpCookieTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -544,8 +543,7 @@ static int DetectEngineHttpCookieTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -636,8 +634,7 @@ static int DetectEngineHttpCookieTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -728,8 +725,7 @@ static int DetectEngineHttpCookieTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -820,8 +816,7 @@ static int DetectEngineHttpCookieTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -912,8 +907,7 @@ static int DetectEngineHttpCookieTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1004,8 +998,7 @@ static int DetectEngineHttpCookieTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1096,8 +1089,7 @@ static int DetectEngineHttpCookieTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1188,8 +1180,7 @@ static int DetectEngineHttpCookieTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1280,8 +1271,7 @@ static int DetectEngineHttpCookieTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1373,8 +1363,7 @@ static int DetectEngineHttpCookieTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1466,8 +1455,7 @@ static int DetectEngineHttpCookieTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1559,8 +1547,7 @@ static int DetectEngineHttpCookieTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1652,8 +1639,7 @@ static int DetectEngineHttpCookieTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1745,8 +1731,7 @@ static int DetectEngineHttpCookieTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1838,8 +1823,7 @@ static int DetectEngineHttpCookieTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1931,8 +1915,7 @@ static int DetectEngineHttpCookieTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; diff --git a/src/detect-engine-hhd.c b/src/detect-engine-hhd.c index 59544aad22..db8125c8bb 100644 --- a/src/detect-engine-hhd.c +++ b/src/detect-engine-hhd.c @@ -534,8 +534,7 @@ static int DetectEngineHttpHeaderTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -624,8 +623,7 @@ static int DetectEngineHttpHeaderTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -714,8 +712,7 @@ static int DetectEngineHttpHeaderTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -804,8 +801,7 @@ static int DetectEngineHttpHeaderTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -894,8 +890,7 @@ static int DetectEngineHttpHeaderTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -984,8 +979,7 @@ static int DetectEngineHttpHeaderTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1074,8 +1068,7 @@ static int DetectEngineHttpHeaderTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1164,8 +1157,7 @@ static int DetectEngineHttpHeaderTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1254,8 +1246,7 @@ static int DetectEngineHttpHeaderTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1344,8 +1335,7 @@ static int DetectEngineHttpHeaderTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1434,8 +1424,7 @@ static int DetectEngineHttpHeaderTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1524,8 +1513,7 @@ static int DetectEngineHttpHeaderTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1614,8 +1602,7 @@ static int DetectEngineHttpHeaderTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1704,8 +1691,7 @@ static int DetectEngineHttpHeaderTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1794,8 +1780,7 @@ static int DetectEngineHttpHeaderTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1884,8 +1869,7 @@ static int DetectEngineHttpHeaderTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1974,8 +1958,7 @@ static int DetectEngineHttpHeaderTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -2062,8 +2045,7 @@ static int DetectEngineHttpHeaderTest18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -2137,8 +2119,7 @@ static int DetectEngineHttpHeaderTest19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -2216,8 +2197,7 @@ static int DetectEngineHttpHeaderTest20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2331,8 +2311,7 @@ static int DetectEngineHttpHeaderTest21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2446,8 +2425,7 @@ static int DetectEngineHttpHeaderTest22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2561,8 +2539,7 @@ static int DetectEngineHttpHeaderTest23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2676,8 +2653,7 @@ static int DetectEngineHttpHeaderTest24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2791,8 +2767,7 @@ static int DetectEngineHttpHeaderTest25(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2906,8 +2881,7 @@ static int DetectEngineHttpHeaderTest26(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3021,8 +2995,7 @@ static int DetectEngineHttpHeaderTest27(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-engine-hmd.c b/src/detect-engine-hmd.c index 7c71cf771d..64014d2153 100644 --- a/src/detect-engine-hmd.c +++ b/src/detect-engine-hmd.c @@ -438,8 +438,7 @@ static int DetectEngineHttpMethodTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -529,8 +528,7 @@ static int DetectEngineHttpMethodTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -620,8 +618,7 @@ static int DetectEngineHttpMethodTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -711,8 +708,7 @@ static int DetectEngineHttpMethodTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -802,8 +798,7 @@ static int DetectEngineHttpMethodTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -893,8 +888,7 @@ static int DetectEngineHttpMethodTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -984,8 +978,7 @@ static int DetectEngineHttpMethodTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1075,8 +1068,7 @@ static int DetectEngineHttpMethodTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1166,8 +1158,7 @@ static int DetectEngineHttpMethodTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1257,8 +1248,7 @@ static int DetectEngineHttpMethodTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1349,8 +1339,7 @@ static int DetectEngineHttpMethodTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1441,8 +1430,7 @@ static int DetectEngineHttpMethodTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1533,8 +1521,7 @@ static int DetectEngineHttpMethodTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1625,8 +1612,7 @@ static int DetectEngineHttpMethodTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1717,8 +1703,7 @@ static int DetectEngineHttpMethodTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1809,8 +1794,7 @@ static int DetectEngineHttpMethodTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1901,8 +1885,7 @@ static int DetectEngineHttpMethodTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; diff --git a/src/detect-engine-hrhd.c b/src/detect-engine-hrhd.c index 0c682fda07..f10270387f 100644 --- a/src/detect-engine-hrhd.c +++ b/src/detect-engine-hrhd.c @@ -445,8 +445,7 @@ static int DetectEngineHttpRawHeaderTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -535,8 +534,7 @@ static int DetectEngineHttpRawHeaderTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -625,8 +623,7 @@ static int DetectEngineHttpRawHeaderTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -715,8 +712,7 @@ static int DetectEngineHttpRawHeaderTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -805,8 +801,7 @@ static int DetectEngineHttpRawHeaderTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -895,8 +890,7 @@ static int DetectEngineHttpRawHeaderTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -985,8 +979,7 @@ static int DetectEngineHttpRawHeaderTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1075,8 +1068,7 @@ static int DetectEngineHttpRawHeaderTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1165,8 +1157,7 @@ static int DetectEngineHttpRawHeaderTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1255,8 +1246,7 @@ static int DetectEngineHttpRawHeaderTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1345,8 +1335,7 @@ static int DetectEngineHttpRawHeaderTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1435,8 +1424,7 @@ static int DetectEngineHttpRawHeaderTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1525,8 +1513,7 @@ static int DetectEngineHttpRawHeaderTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1615,8 +1602,7 @@ static int DetectEngineHttpRawHeaderTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1705,8 +1691,7 @@ static int DetectEngineHttpRawHeaderTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1795,8 +1780,7 @@ static int DetectEngineHttpRawHeaderTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1885,8 +1869,7 @@ static int DetectEngineHttpRawHeaderTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1973,8 +1956,7 @@ static int DetectEngineHttpRawHeaderTest18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -2048,8 +2030,7 @@ static int DetectEngineHttpRawHeaderTest19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -2127,8 +2108,7 @@ static int DetectEngineHttpRawHeaderTest20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2242,8 +2222,7 @@ static int DetectEngineHttpRawHeaderTest21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2357,8 +2336,7 @@ static int DetectEngineHttpRawHeaderTest22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2472,8 +2450,7 @@ static int DetectEngineHttpRawHeaderTest23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2587,8 +2564,7 @@ static int DetectEngineHttpRawHeaderTest24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2702,8 +2678,7 @@ static int DetectEngineHttpRawHeaderTest25(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2817,8 +2792,7 @@ static int DetectEngineHttpRawHeaderTest26(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2932,8 +2906,7 @@ static int DetectEngineHttpRawHeaderTest27(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-engine-hrud.c b/src/detect-engine-hrud.c index 0760b5c7ca..09f2b516a4 100644 --- a/src/detect-engine-hrud.c +++ b/src/detect-engine-hrud.c @@ -489,8 +489,7 @@ static int DetectEngineHttpRawUriTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -604,8 +603,7 @@ static int DetectEngineHttpRawUriTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -708,8 +706,7 @@ static int DetectEngineHttpRawUriTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -827,8 +824,7 @@ static int DetectEngineHttpRawUriTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -945,8 +941,7 @@ static int DetectEngineHttpRawUriTest05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1063,8 +1058,7 @@ static int DetectEngineHttpRawUriTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1181,8 +1175,7 @@ static int DetectEngineHttpRawUriTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1299,8 +1292,7 @@ static int DetectEngineHttpRawUriTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1417,8 +1409,7 @@ static int DetectEngineHttpRawUriTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1536,8 +1527,7 @@ static int DetectEngineHttpRawUriTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1655,8 +1645,7 @@ static int DetectEngineHttpRawUriTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1774,8 +1763,7 @@ static int DetectEngineHttpRawUriTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -1893,8 +1881,7 @@ static int DetectEngineHttpRawUriTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2012,8 +1999,7 @@ static int DetectEngineHttpRawUriTest14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2131,8 +2117,7 @@ static int DetectEngineHttpRawUriTest15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2250,8 +2235,7 @@ static int DetectEngineHttpRawUriTest16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2356,8 +2340,7 @@ static int DetectEngineHttpRawUriTest17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2428,8 +2411,7 @@ static int DetectEngineHttpRawUriTest18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2500,8 +2482,7 @@ static int DetectEngineHttpRawUriTest19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2572,8 +2553,7 @@ static int DetectEngineHttpRawUriTest20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2657,8 +2637,7 @@ static int DetectEngineHttpRawUriTest21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2776,8 +2755,7 @@ static int DetectEngineHttpRawUriTest22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2895,8 +2873,7 @@ static int DetectEngineHttpRawUriTest23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3014,8 +2991,7 @@ static int DetectEngineHttpRawUriTest24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3133,8 +3109,7 @@ static int DetectEngineHttpRawUriTest25(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3252,8 +3227,7 @@ static int DetectEngineHttpRawUriTest26(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3371,8 +3345,7 @@ static int DetectEngineHttpRawUriTest27(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3490,8 +3463,7 @@ static int DetectEngineHttpRawUriTest28(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -3600,8 +3572,7 @@ static int DetectEngineHttpRawUriTest29(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW | PKT_STREAM_EST; @@ -3689,8 +3660,7 @@ static int DetectEngineHttpRawUriTest30(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; diff --git a/src/detect-engine-state.c b/src/detect-engine-state.c index e0238820a9..cfa062aa5f 100644 --- a/src/detect-engine-state.c +++ b/src/detect-engine-state.c @@ -990,8 +990,7 @@ static int DeStateSigTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1122,8 +1121,7 @@ static int DeStateSigTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; diff --git a/src/detect-engine-uri.c b/src/detect-engine-uri.c index 2e38d4d0d2..3b9f371a93 100644 --- a/src/detect-engine-uri.c +++ b/src/detect-engine-uri.c @@ -523,8 +523,7 @@ static int UriTestSig01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -637,8 +636,7 @@ static int UriTestSig02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -751,8 +749,7 @@ static int UriTestSig03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -865,8 +862,7 @@ static int UriTestSig04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -979,8 +975,7 @@ static int UriTestSig05(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1093,8 +1088,7 @@ static int UriTestSig06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1207,8 +1201,7 @@ static int UriTestSig07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1321,8 +1314,7 @@ static int UriTestSig08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1435,8 +1427,7 @@ static int UriTestSig09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1549,8 +1540,7 @@ static int UriTestSig10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1663,8 +1653,7 @@ static int UriTestSig11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1778,8 +1767,7 @@ static int UriTestSig12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -1893,8 +1881,7 @@ static int UriTestSig13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2008,8 +1995,7 @@ static int UriTestSig14(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2123,8 +2109,7 @@ static int UriTestSig15(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2238,8 +2223,7 @@ static int UriTestSig16(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2349,8 +2333,7 @@ static int UriTestSig17(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2439,8 +2422,7 @@ static int UriTestSig18(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2529,8 +2511,7 @@ static int UriTestSig19(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2620,8 +2601,7 @@ static int UriTestSig20(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2710,8 +2690,7 @@ static int UriTestSig21(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2800,8 +2779,7 @@ static int UriTestSig22(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2888,8 +2866,7 @@ static int UriTestSig23(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -2976,8 +2953,7 @@ static int UriTestSig24(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3064,8 +3040,7 @@ static int UriTestSig25(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -3152,8 +3127,7 @@ static int UriTestSig26(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3240,8 +3214,7 @@ static int UriTestSig27(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3360,8 +3333,7 @@ static int UriTestSig28(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3447,8 +3419,7 @@ static int UriTestSig29(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3534,8 +3505,7 @@ static int UriTestSig30(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3621,8 +3591,7 @@ static int UriTestSig31(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -3708,8 +3677,7 @@ static int UriTestSig32(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; diff --git a/src/detect-http-client-body.c b/src/detect-http-client-body.c index 1135402f25..5253883948 100644 --- a/src/detect-http-client-body.c +++ b/src/detect-http-client-body.c @@ -398,8 +398,7 @@ static int DetectHttpClientBodyTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -499,8 +498,7 @@ static int DetectHttpClientBodyTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -618,8 +616,7 @@ static int DetectHttpClientBodyTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -740,8 +737,7 @@ static int DetectHttpClientBodyTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -861,8 +857,7 @@ static int DetectHttpClientBodyTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -977,8 +972,7 @@ static int DetectHttpClientBodyTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1073,8 +1067,7 @@ static int DetectHttpClientBodyTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1170,8 +1163,7 @@ static int DetectHttpClientBodyTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1267,8 +1259,7 @@ static int DetectHttpClientBodyTest14(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1461,8 +1452,7 @@ static int DetectHttpClientBodyTest15(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-cookie.c b/src/detect-http-cookie.c index a9e0e8baa9..d265d462ba 100644 --- a/src/detect-http-cookie.c +++ b/src/detect-http-cookie.c @@ -654,8 +654,7 @@ static int DetectHttpCookieSigTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -753,8 +752,7 @@ static int DetectHttpCookieSigTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -839,8 +837,7 @@ static int DetectHttpCookieSigTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -926,8 +923,7 @@ static int DetectHttpCookieSigTest04(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1013,8 +1009,7 @@ static int DetectHttpCookieSigTest05(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1100,8 +1095,7 @@ static int DetectHttpCookieSigTest06(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1186,8 +1180,7 @@ static int DetectHttpCookieSigTest07(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-header.c b/src/detect-http-header.c index 8cbaca8292..51796ed51c 100644 --- a/src/detect-http-header.c +++ b/src/detect-http-header.c @@ -413,8 +413,7 @@ static int DetectHttpHeaderTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -513,8 +512,7 @@ static int DetectHttpHeaderTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -631,8 +629,7 @@ static int DetectHttpHeaderTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -750,8 +747,7 @@ static int DetectHttpHeaderTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -870,8 +866,7 @@ static int DetectHttpHeaderTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -985,8 +980,7 @@ static int DetectHttpHeaderTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1080,8 +1074,7 @@ static int DetectHttpHeaderTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1175,8 +1168,7 @@ static int DetectHttpHeaderTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-method.c b/src/detect-http-method.c index 5769c3e993..76723c4275 100644 --- a/src/detect-http-method.c +++ b/src/detect-http-method.c @@ -652,8 +652,7 @@ static int DetectHttpMethodSigTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -750,8 +749,7 @@ static int DetectHttpMethodSigTest02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -847,8 +845,7 @@ static int DetectHttpMethodSigTest03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -934,8 +931,7 @@ static int DetectHttpMethodSigTest04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-raw-header.c b/src/detect-http-raw-header.c index 51ea0ebf13..debac9a085 100644 --- a/src/detect-http-raw-header.c +++ b/src/detect-http-raw-header.c @@ -410,8 +410,7 @@ static int DetectHttpRawHeaderTest06(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -510,8 +509,7 @@ static int DetectHttpRawHeaderTest07(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -628,8 +626,7 @@ static int DetectHttpRawHeaderTest08(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -747,8 +744,7 @@ static int DetectHttpRawHeaderTest09(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -866,8 +862,7 @@ static int DetectHttpRawHeaderTest10(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; p1->flowflags |= FLOW_PKT_ESTABLISHED; @@ -981,8 +976,7 @@ static int DetectHttpRawHeaderTest11(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1076,8 +1070,7 @@ static int DetectHttpRawHeaderTest12(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -1171,8 +1164,7 @@ static int DetectHttpRawHeaderTest13(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-stat-code.c b/src/detect-http-stat-code.c index 4bebea322b..1bb35248f5 100644 --- a/src/detect-http-stat-code.c +++ b/src/detect-http-stat-code.c @@ -421,8 +421,7 @@ static int DetectHttpStatCodeSigTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -515,8 +514,7 @@ static int DetectHttpStatCodeSigTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -623,8 +621,7 @@ static int DetectHttpStatCodeSigTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -731,8 +728,7 @@ static int DetectHttpStatCodeSigTest04(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-http-stat-msg.c b/src/detect-http-stat-msg.c index 726b579843..798bebbc71 100644 --- a/src/detect-http-stat-msg.c +++ b/src/detect-http-stat-msg.c @@ -408,8 +408,7 @@ static int DetectHttpStatMsgSigTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -515,8 +514,7 @@ static int DetectHttpStatMsgSigTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -612,8 +610,7 @@ static int DetectHttpStatMsgSigTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-pcre.c b/src/detect-pcre.c index 34896132a9..be2c61933f 100644 --- a/src/detect-pcre.c +++ b/src/detect-pcre.c @@ -1544,8 +1544,7 @@ static int DetectPcreTestSig01Real(int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; f.alproto = ALPROTO_HTTP; p = UTHBuildPacket(buf, buflen, IPPROTO_TCP); @@ -1788,8 +1787,7 @@ static int DetectPcreModifPTest04(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1912,8 +1910,7 @@ static int DetectPcreModifPTest05(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -2097,8 +2094,7 @@ static int DetectPcreTestSig09(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2186,8 +2182,7 @@ static int DetectPcreTestSig10(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2275,8 +2270,7 @@ static int DetectPcreTestSig11(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2364,8 +2358,7 @@ static int DetectPcreTestSig12(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2453,8 +2446,7 @@ static int DetectPcreTestSig13(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2542,8 +2534,7 @@ static int DetectPcreTestSig14(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2636,8 +2627,7 @@ static int DetectPcreTxBodyChunksTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -2784,8 +2774,7 @@ static int DetectPcreTxBodyChunksTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -3008,8 +2997,7 @@ static int DetectPcreTxBodyChunksTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; f.proto = IPPROTO_TCP; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-tag.c b/src/detect-tag.c index 5da1864fd8..218253f746 100644 --- a/src/detect-tag.c +++ b/src/detect-tag.c @@ -805,9 +805,9 @@ int DetectTagTestPacket04 (void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.dst.family = AF_INET; - inet_pton(f.src.family, "192.168.1.5", f.src.addr_data32); - inet_pton(f.dst.family, "192.168.1.1", f.dst.addr_data32); + f.flags |= FLOW_IPV4; + inet_pton(AF_INET, "192.168.1.5", f.src.addr_data32); + inet_pton(AF_INET, "192.168.1.1", f.dst.addr_data32); DecodeThreadVars dtv; ThreadVars th_v; diff --git a/src/detect-uricontent.c b/src/detect-uricontent.c index 0548383839..19d58e1045 100644 --- a/src/detect-uricontent.c +++ b/src/detect-uricontent.c @@ -522,8 +522,7 @@ static int HTTPUriTest01(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; StreamTcpInitConfig(TRUE); @@ -590,8 +589,7 @@ static int HTTPUriTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; StreamTcpInitConfig(TRUE); @@ -660,8 +658,7 @@ static int HTTPUriTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; StreamTcpInitConfig(TRUE); @@ -731,8 +728,7 @@ static int HTTPUriTest04(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; StreamTcpInitConfig(TRUE); @@ -857,8 +853,7 @@ static int DetectUriSigTest02(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -966,8 +961,7 @@ static int DetectUriSigTest03(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1294,8 +1288,7 @@ static int DetectUriSigTest05(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1416,8 +1409,7 @@ static int DetectUriSigTest06(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -1546,8 +1538,7 @@ static int DetectUriSigTest07(void) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect-urilen.c b/src/detect-urilen.c index 192234b308..f4e47b0a87 100644 --- a/src/detect-urilen.c +++ b/src/detect-urilen.c @@ -521,8 +521,7 @@ static int DetectUrilenSigTest01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/detect.c b/src/detect.c index 5ed54747f9..44310648c8 100644 --- a/src/detect.c +++ b/src/detect.c @@ -4668,8 +4668,7 @@ static int SigTest06Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -4762,8 +4761,7 @@ static int SigTest07Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -4856,8 +4854,7 @@ static int SigTest08Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -4950,8 +4947,7 @@ static int SigTest09Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -5036,8 +5032,7 @@ static int SigTest10Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flowflags |= FLOW_PKT_ESTABLISHED; @@ -5122,8 +5117,7 @@ static int SigTest11Real (int mpm_type) { FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; p->flags |= PKT_HAS_FLOW|PKT_STREAM_EST; @@ -10014,8 +10008,7 @@ static int SigTestDropFlow01(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -10111,8 +10104,7 @@ static int SigTestDropFlow02(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p->flow = &f; p->flowflags |= FLOW_PKT_TOSERVER; @@ -10221,8 +10213,7 @@ static int SigTestDropFlow03(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; @@ -10385,8 +10376,7 @@ static int SigTestDropFlow04(void) FLOW_INITIALIZE(&f); f.protoctx = (void *)&ssn; - f.src.family = AF_INET; - f.dst.family = AF_INET; + f.flags |= FLOW_IPV4; p1->flow = &f; p1->flowflags |= FLOW_PKT_TOSERVER; diff --git a/src/flow-timeout.c b/src/flow-timeout.c index 53a5987c9e..e5e6c1a8cb 100644 --- a/src/flow-timeout.c +++ b/src/flow-timeout.c @@ -100,20 +100,22 @@ static inline Packet *FlowForceReassemblyPseudoPacketSetup(Packet *p, else p->flowflags |= FLOW_PKT_TOCLIENT; p->flowflags |= FLOW_PKT_ESTABLISHED; - if (direction == 0) { - COPY_ADDRESS(&f->src, &p->src); - COPY_ADDRESS(&f->dst, &p->dst); - p->sp = f->sp; - p->dp = f->dp; - } else { - COPY_ADDRESS(&f->src, &p->dst); - COPY_ADDRESS(&f->dst, &p->src); - p->sp = f->dp; - p->dp = f->sp; - } p->payload = NULL; p->payload_len = 0; - if (f->src.family == AF_INET) { + + if (FLOW_IS_IPV4(f)) { + if (direction == 0) { + FLOW_COPY_IPV4_ADDR_TO_PACKET(&f->src, &p->src); + FLOW_COPY_IPV4_ADDR_TO_PACKET(&f->dst, &p->dst); + p->sp = f->sp; + p->dp = f->dp; + } else { + FLOW_COPY_IPV4_ADDR_TO_PACKET(&f->src, &p->dst); + FLOW_COPY_IPV4_ADDR_TO_PACKET(&f->dst, &p->src); + p->sp = f->dp; + p->dp = f->sp; + } + /* set the ip header */ p->ip4h = (IPV4Hdr *)GET_PKT_DATA(p); /* version 4 and length 20 bytes for the tcp header */ @@ -136,7 +138,19 @@ static inline Packet *FlowForceReassemblyPseudoPacketSetup(Packet *p, /* set the tcp header */ p->tcph = (TCPHdr *)((uint8_t *)GET_PKT_DATA(p) + 20); - } else { + } else if (FLOW_IS_IPV6(f)) { + if (direction == 0) { + FLOW_COPY_IPV6_ADDR_TO_PACKET(&f->src, &p->src); + FLOW_COPY_IPV6_ADDR_TO_PACKET(&f->dst, &p->dst); + p->sp = f->sp; + p->dp = f->dp; + } else { + FLOW_COPY_IPV6_ADDR_TO_PACKET(&f->src, &p->dst); + FLOW_COPY_IPV6_ADDR_TO_PACKET(&f->dst, &p->src); + p->sp = f->dp; + p->dp = f->sp; + } + /* set the ip header */ p->ip6h = (IPV6Hdr *)GET_PKT_DATA(p); /* version 6 */ @@ -203,10 +217,10 @@ static inline Packet *FlowForceReassemblyPseudoPacketSetup(Packet *p, } } - if (f->src.family == AF_INET) { + if (FLOW_IS_IPV4(f)) { p->tcph->th_sum = TCPCalculateChecksum((uint16_t *)&(p->ip4h->ip_src), (uint16_t *)p->tcph, 20); - } else { + } else if (FLOW_IS_IPV6(f)) { p->tcph->th_sum = TCPCalculateChecksum((uint16_t *)&(p->ip6h->ip6_src), (uint16_t *)p->tcph, 20); } diff --git a/src/flow-util.c b/src/flow-util.c index 6a172e88ad..8d6d7c4a61 100644 --- a/src/flow-util.c +++ b/src/flow-util.c @@ -111,20 +111,21 @@ void FlowInit(Flow *f, Packet *p) f->proto = p->proto; f->recursion_level = p->recursion_level; - if (p->ip4h != NULL) { /* XXX MACRO */ - SET_IPV4_SRC_ADDR(p,&f->src); - SET_IPV4_DST_ADDR(p,&f->dst); - f->src.family = AF_INET; - f->dst.family = AF_INET; - } else if (p->ip6h != NULL) { /* XXX MACRO */ - SET_IPV6_SRC_ADDR(p,&f->src); - SET_IPV6_DST_ADDR(p,&f->dst); - f->src.family = AF_INET6; - f->dst.family = AF_INET6; - } /* XXX handle default */ + if (PKT_IS_IPV4(p)) { + FLOW_SET_IPV4_SRC_ADDR_FROM_PACKET(p, &f->src); + FLOW_SET_IPV4_DST_ADDR_FROM_PACKET(p, &f->dst); + f->flags |= FLOW_IPV4; + } else if (PKT_IS_IPV6(p)) { + FLOW_SET_IPV6_SRC_ADDR_FROM_PACKET(p, &f->src); + FLOW_SET_IPV6_DST_ADDR_FROM_PACKET(p, &f->dst); + f->flags |= FLOW_IPV6; + } +#ifdef DEBUG + /* XXX handle default */ else { printf("FIXME: %s:%s:%" PRId32 "\n", __FILE__, __FUNCTION__, __LINE__); } +#endif if (p->tcph != NULL) { /* XXX MACRO */ SET_TCP_SRC_PORT(p,&f->sp); @@ -142,10 +143,11 @@ void FlowInit(Flow *f, Packet *p) SET_SCTP_SRC_PORT(p,&f->sp); SET_SCTP_DST_PORT(p,&f->dp); } /* XXX handle default */ +#ifdef DEBUG else { printf("FIXME: %s:%s:%" PRId32 "\n", __FILE__, __FUNCTION__, __LINE__); } - +#endif COPY_TIMESTAMP(&p->ts, &f->startts); f->protomap = FlowGetProtoMapping(f->proto); diff --git a/src/flow.h b/src/flow.h index 2c11a79d10..7253818699 100644 --- a/src/flow.h +++ b/src/flow.h @@ -77,20 +77,86 @@ #define FLOW_ALPROTO_DETECT_DONE 0x00008000 #define FLOW_NO_APPLAYER_INSPECTION 0x00010000 -/* Pattern matcher alproto detection done */ +/** Pattern matcher alproto detection done */ #define FLOW_TS_PM_ALPROTO_DETECT_DONE 0x00020000 -/* Probing parser alproto detection done */ +/** Probing parser alproto detection done */ #define FLOW_TS_PP_ALPROTO_DETECT_DONE 0x00040000 -/* Both pattern matcher and probing parser alproto detection done */ +/** Both pattern matcher and probing parser alproto detection done */ #define FLOW_TS_PM_PP_ALPROTO_DETECT_DONE 0x00080000 -/* Pattern matcher alproto detection done */ +/** Pattern matcher alproto detection done */ #define FLOW_TC_PM_ALPROTO_DETECT_DONE 0x00100000 -/* Probing parser alproto detection done */ +/** Probing parser alproto detection done */ #define FLOW_TC_PP_ALPROTO_DETECT_DONE 0x00200000 -/* Both pattern matcher and probing parser alproto detection done */ +/** Both pattern matcher and probing parser alproto detection done */ #define FLOW_TC_PM_PP_ALPROTO_DETECT_DONE 0x00400000 #define FLOW_TIMEOUT_REASSEMBLY_DONE 0x00800000 +/** flow is ipv4 */ +#define FLOW_IPV4 0x01000000 +/** flow is ipv6 */ +#define FLOW_IPV6 0x02000000 + +#define FLOW_IS_IPV4(f) \ + (((f)->flags & FLOW_IPV4) == FLOW_IPV4) +#define FLOW_IS_IPV6(f) \ + (((f)->flags & FLOW_IPV6) == FLOW_IPV6) + +#define FLOW_COPY_IPV4_ADDR_TO_PACKET(fa, pa) do { \ + (pa)->family = AF_INET; \ + (pa)->addr_data32[0] = (fa)->addr_data32[0]; \ + } while (0) + +#define FLOW_COPY_IPV6_ADDR_TO_PACKET(fa, pa) do { \ + (pa)->family = AF_INET; \ + (pa)->addr_data32[0] = (fa)->addr_data32[0]; \ + (pa)->addr_data32[1] = (fa)->addr_data32[1]; \ + (pa)->addr_data32[2] = (fa)->addr_data32[2]; \ + (pa)->addr_data32[3] = (fa)->addr_data32[3]; \ + } while (0) + +/* Set the IPv4 addressesinto the Addrs of the Packet. + * Make sure p->ip4h is initialized and validated. + * + * We set the rest of the struct to 0 so we can + * prevent using memset. */ +#define FLOW_SET_IPV4_SRC_ADDR_FROM_PACKET(p, a) do { \ + (a)->addr_data32[0] = (uint32_t)(p)->ip4h->ip_src.s_addr; \ + (a)->addr_data32[1] = 0; \ + (a)->addr_data32[2] = 0; \ + (a)->addr_data32[3] = 0; \ + } while (0) + +#define FLOW_SET_IPV4_DST_ADDR_FROM_PACKET(p, a) do { \ + (a)->addr_data32[0] = (uint32_t)(p)->ip4h->ip_dst.s_addr; \ + (a)->addr_data32[1] = 0; \ + (a)->addr_data32[2] = 0; \ + (a)->addr_data32[3] = 0; \ + } while (0) + +/* clear the address structure by setting all fields to 0 */ +#define FLOW_CLEAR_ADDR(a) do { \ + (a)->addr_data32[0] = 0; \ + (a)->addr_data32[1] = 0; \ + (a)->addr_data32[2] = 0; \ + (a)->addr_data32[3] = 0; \ + } while (0) + +/* Set the IPv6 addressesinto the Addrs of the Packet. + * Make sure p->ip6h is initialized and validated. */ +#define FLOW_SET_IPV6_SRC_ADDR_FROM_PACKET(p, a) do { \ + (a)->addr_data32[0] = (p)->ip6h->ip6_src[0]; \ + (a)->addr_data32[1] = (p)->ip6h->ip6_src[1]; \ + (a)->addr_data32[2] = (p)->ip6h->ip6_src[2]; \ + (a)->addr_data32[3] = (p)->ip6h->ip6_src[3]; \ + } while (0) + +#define FLOW_SET_IPV6_DST_ADDR_FROM_PACKET(p, a) do { \ + (a)->addr_data32[0] = (p)->ip6h->ip6_dst[0]; \ + (a)->addr_data32[1] = (p)->ip6h->ip6_dst[1]; \ + (a)->addr_data32[2] = (p)->ip6h->ip6_dst[2]; \ + (a)->addr_data32[3] = (p)->ip6h->ip6_dst[3]; \ + } while (0) + /* pkt flow flags */ #define FLOW_PKT_TOSERVER 0x01 #define FLOW_PKT_TOCLIENT 0x02 @@ -130,6 +196,18 @@ typedef struct FlowKey_ } FlowKey; +typedef struct FlowAddress_ { + union { + uint32_t address_un_data32[4]; /* type-specific field */ + uint16_t address_un_data16[8]; /* type-specific field */ + uint8_t address_un_data8[16]; /* type-specific field */ + } address; +} FlowAddress; + +#define addr_data32 address.address_un_data32 +#define addr_data16 address.address_un_data16 +#define addr_data8 address.address_un_data8 + /** * \brief Flow data structure. * @@ -152,7 +230,7 @@ typedef struct Flow_ { /* flow "header", used for hashing and flow lookup. Static after init, * so safe to look at without lock */ - Address src, dst; + FlowAddress src, dst; union { Port sp; /**< tcp/udp source port */ uint8_t type; /**< icmp type */ diff --git a/src/stream-tcp-reassemble.c b/src/stream-tcp-reassemble.c index 40f5294f33..0ca8b8d82a 100644 --- a/src/stream-tcp-reassemble.c +++ b/src/stream-tcp-reassemble.c @@ -4831,34 +4831,26 @@ static int StreamTcpTestMissedPacket (TcpReassemblyThreadCtx *ra_ctx, TCPHdr tcph; Port sp; Port dp; - Address src; - Address dst; struct in_addr in; + ThreadVars tv; PacketQueue pq; - memset(&pq,0,sizeof(PacketQueue)); + memset(&pq,0,sizeof(PacketQueue)); memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); - ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - inet_pton(AF_INET, "1.2.3.4", &in); - - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; sp = 200; dp = 220; FLOW_INITIALIZE(&f); - f.src = src; - f.dst = dst; + inet_pton(AF_INET, "1.2.3.4", &in); + f.src.addr_data32[0] = in.s_addr; + inet_pton(AF_INET, "1.2.3.5", &in); + f.dst.addr_data32[0] = in.s_addr; + f.flags |= FLOW_IPV4; f.sp = sp; f.dp = dp; f.protoctx = ssn; @@ -5914,8 +5906,6 @@ static int StreamTcpReassembleTest38 (void) { TCPHdr tcph; Port sp; Port dp; - Address src; - Address dst; struct in_addr in; TcpSession ssn; @@ -5925,16 +5915,12 @@ static int StreamTcpReassembleTest38 (void) { memset(&pq,0,sizeof(PacketQueue)); memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ @@ -5942,12 +5928,11 @@ static int StreamTcpReassembleTest38 (void) { uint8_t httpbuf2[] = "HTTP/1.0 200 OK\r\nServer: VictorServer/1.0\r\n\r\n"; uint32_t httplen2 = sizeof(httpbuf2) - 1; /* minus the \0 */ + FLOW_INITIALIZE(&f); inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; + f.src.addr_data32[0] = in.s_addr; inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; + f.dst.addr_data32[0] = in.s_addr; sp = 200; dp = 220; @@ -5959,8 +5944,7 @@ static int StreamTcpReassembleTest38 (void) { ssn.client.last_ack = 60; f.alproto = ALPROTO_UNKNOWN; - f.src = src; - f.dst = dst; + f.flags |= FLOW_IPV4; f.sp = sp; f.dp = dp; f.protoctx = &ssn; @@ -6073,31 +6057,21 @@ static int StreamTcpReassembleTest39 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOSERVER, 7); StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOCLIENT, 7); @@ -6113,23 +6087,12 @@ static int StreamTcpReassembleTest39 (void) { ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq= 9; ssn.client.isn = 9; ssn.client.last_ack = 160; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; SCLogDebug("check client seg list %p", ssn.client.seg_list); tcph.th_win = htons(5480); @@ -6285,6 +6248,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -6300,33 +6264,23 @@ static int StreamTcpReassembleTest40 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOSERVER, 130); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "P"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ @@ -6346,23 +6300,12 @@ static int StreamTcpReassembleTest40 (void) { ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq = 9; ssn.client.isn = 9; ssn.client.last_ack = 10; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -6535,7 +6478,7 @@ static int StreamTcpReassembleTest40 (void) { goto end; } - if (f.alproto != ALPROTO_HTTP) { + if (f->alproto != ALPROTO_HTTP) { printf("app layer proto has not been detected (18): "); goto end; } @@ -6545,6 +6488,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -6562,31 +6506,21 @@ static int StreamTcpReassembleTest41 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "GET / HTTP/1.0\r\nUser-Agent: Victor/1.0" "W2dyb3VwMV0NCnBob25lMT1wMDB3ODgyMTMxMzAyMTINCmxvZ2lu" @@ -6620,23 +6554,12 @@ static int StreamTcpReassembleTest41 (void) { ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq = 9; ssn.client.isn = 9; ssn.client.last_ack = 600; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -6757,6 +6680,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -6771,31 +6695,21 @@ static int StreamTcpReassembleTest42 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "POST / HTTP/1.0\r\nUser-Agent: Victor/1.0\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ @@ -6812,23 +6726,12 @@ static int StreamTcpReassembleTest42 (void) { ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq = 9; ssn.client.isn = 9; ssn.client.last_ack = 60; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -6931,6 +6834,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -6945,31 +6849,21 @@ static int StreamTcpReassembleTest43 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "/ HTTP/1.0\r\nUser-Agent: Victor/1.0"; @@ -6996,23 +6890,12 @@ static int StreamTcpReassembleTest43 (void) { ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq = 9; ssn.client.isn = 9; ssn.client.last_ack = 600; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -7146,6 +7029,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -7203,23 +7087,15 @@ static int StreamTcpReassembleTest45 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; memset(p, 0, SIZE_OF_PACKET); p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); ThreadVars tv; memset(&tv, 0, sizeof (ThreadVars)); @@ -7228,7 +7104,6 @@ static int StreamTcpReassembleTest45 (void) { uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); @@ -7238,23 +7113,12 @@ static int StreamTcpReassembleTest45 (void) { STREAMTCP_SET_RA_BASE_SEQ(&ssn.client, 9); ssn.client.isn = 9; ssn.client.last_ack = 60; - f.alproto = ALPROTO_UNKNOWN; - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -7324,6 +7188,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -7340,13 +7205,8 @@ static int StreamTcpReassembleTest46 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; ThreadVars tv; @@ -7354,17 +7214,13 @@ static int StreamTcpReassembleTest46 (void) { p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); memset(&tv, 0, sizeof (ThreadVars)); uint8_t httpbuf1[] = "/ HTTP/1.0\r\nUser-Agent: Victor/1.0"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); @@ -7376,23 +7232,12 @@ static int StreamTcpReassembleTest46 (void) { ssn.client.isn = 9; ssn.client.last_ack = 60; ssn.client.next_seq = ssn.client.isn; - f.alproto = ALPROTO_UNKNOWN; - - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; tcph.th_win = htons(5480); tcph.th_seq = htonl(10); @@ -7466,6 +7311,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -7481,13 +7327,8 @@ static int StreamTcpReassembleTest47 (void) { Packet *p = SCMalloc(SIZE_OF_PACKET); if (p == NULL) return 0; - Flow f; + Flow *f = NULL; TCPHdr tcph; - Port sp; - Port dp; - Address src; - Address dst; - struct in_addr in; TcpSession ssn; ThreadVars tv; @@ -7495,10 +7336,7 @@ static int StreamTcpReassembleTest47 (void) { p->pkt = (uint8_t *)(p + 1); PacketQueue pq; memset(&pq,0,sizeof(PacketQueue)); - memset(&f, 0, sizeof (Flow)); memset(&tcph, 0, sizeof (TCPHdr)); - memset(&src, 0, sizeof(Address)); - memset(&dst, 0, sizeof(Address)); memset(&ssn, 0, sizeof(TcpSession)); memset(&tv, 0, sizeof (ThreadVars)); @@ -7506,37 +7344,25 @@ static int StreamTcpReassembleTest47 (void) { StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOSERVER, 0); StreamMsgQueueSetMinChunkLen(FLOW_PKT_TOCLIENT, 0); - FLOW_INITIALIZE(&f); StreamTcpInitConfig(TRUE); TcpReassemblyThreadCtx *ra_ctx = StreamTcpReassembleInitThreadCtx(); - //AppLayerDetectProtoThreadInit(); uint8_t httpbuf1[] = "GET /EVILSUFF HTTP/1.1\r\n\r\n"; uint32_t httplen1 = sizeof(httpbuf1) - 1; /* minus the \0 */ - inet_pton(AF_INET, "1.2.3.4", &in); - src.family = AF_INET; - src.addr_data32[0] = in.s_addr; - inet_pton(AF_INET, "1.2.3.5", &in); - dst.family = AF_INET; - dst.addr_data32[0] = in.s_addr; - sp = 200; - dp = 220; - ssn.server.ra_raw_base_seq = ssn.server.ra_app_base_seq = 572799781UL; ssn.server.isn = 572799781UL; ssn.server.last_ack = 572799782UL; ssn.client.ra_raw_base_seq = ssn.client.ra_app_base_seq = 4294967289UL; ssn.client.isn = 4294967289UL; ssn.client.last_ack = 21; - f.alproto = ALPROTO_UNKNOWN; - f.src = src; - f.dst = dst; - f.sp = sp; - f.dp = dp; - f.protoctx = &ssn; - p->flow = &f; + f = UTHBuildFlow(AF_INET, "1.2.3.4", "1.2.3.5", 200, 220); + if (f == NULL) + goto end; + f->protoctx = &ssn; + p->flow = f; + tcph.th_win = htons(5480); ssn.state = TCP_ESTABLISHED; TcpStream *s = NULL; @@ -7580,7 +7406,7 @@ static int StreamTcpReassembleTest47 (void) { } } - if (f.alproto != ALPROTO_HTTP) { + if (f->alproto != ALPROTO_HTTP) { printf("App layer protocol (HTTP) should have been detected\n"); goto end; } @@ -7590,6 +7416,7 @@ end: StreamTcpReassembleFreeThreadCtx(ra_ctx); StreamTcpFreeConfig(TRUE); SCFree(p); + UTHFreeFlow(f); return ret; } @@ -8627,15 +8454,18 @@ static int StreamTcpReassembleInlineTest10(void) { TcpReassemblyThreadCtx *ra_ctx = NULL; ThreadVars tv; TcpSession ssn; - Flow f; + Flow *f = NULL; memset(&tv, 0x00, sizeof(tv)); StreamTcpUTInit(&ra_ctx); StreamTcpUTSetupSession(&ssn); StreamTcpUTSetupStream(&ssn.server, 1); - FLOW_INITIALIZE(&f); - f.src.family = f.dst.family = AF_INET; + + f = UTHBuildFlow(AF_INET, "1.1.1.1", "2.2.2.2", 1024, 80); + if (f == NULL) + goto end; + f->protoctx = &ssn; uint8_t stream_payload1[] = "GE"; uint8_t stream_payload2[] = "T /"; @@ -8647,7 +8477,7 @@ static int StreamTcpReassembleInlineTest10(void) { goto end; } p->tcph->th_seq = htonl(7); - p->flow = &f; + p->flow = f; p->flowflags |= FLOW_PKT_TOSERVER; if (StreamTcpUTAddSegmentWithPayload(&tv, ra_ctx, &ssn.server, 2, stream_payload1, 2) == -1) { @@ -8697,6 +8527,7 @@ end: StreamTcpUTClearSession(&ssn); StreamTcpUTDeinit(ra_ctx); #endif + UTHFreeFlow(f); return ret; } diff --git a/src/util-unittest-helper.c b/src/util-unittest-helper.c index ca0ae5d4bc..e8f71bc150 100644 --- a/src/util-unittest-helper.c +++ b/src/util-unittest-helper.c @@ -421,6 +421,54 @@ void UTHFreePacket(Packet *p) { SCFree(p); } +Flow *UTHBuildFlow(int family, char *src, char *dst, Port sp, Port dp) { + struct in_addr in; + + Flow *f = SCMalloc(sizeof(Flow)); + if (f == NULL) { + printf("FlowAlloc failed\n");; + return NULL; + } + memset(f, 0x00, sizeof(Flow)); + + FLOW_INITIALIZE(f); + + if (family == AF_INET) { + f->flags |= FLOW_IPV4; + } else if (family == AF_INET6) { + f->flags |= FLOW_IPV6; + } + + if (src != NULL) { + if (family == AF_INET) { + inet_pton(AF_INET, src, &in); + f->src.addr_data32[0] = in.s_addr; + } else { + BUG_ON(1); + } + } + if (dst != NULL) { + if (family == AF_INET) { + inet_pton(AF_INET, src, &in); + f->dst.addr_data32[0] = in.s_addr; + } else { + BUG_ON(1); + } + } + + f->sp = sp; + f->dp = dp; + + return f; +} + +void UTHFreeFlow(Flow *flow) { + if (flow != NULL) { + FLOW_DESTROY(flow); + FlowFree(flow); + } +} + /** * \brief UTHGenericTest: function that perfom a generic check taking care of * as maximum common unittest elements as possible. diff --git a/src/util-unittest-helper.h b/src/util-unittest-helper.h index 241a89d458..a53a7149d5 100644 --- a/src/util-unittest-helper.h +++ b/src/util-unittest-helper.h @@ -40,6 +40,9 @@ Packet *UTHBuildPacketFromEth(uint8_t *, uint16_t); void UTHFreePacket(Packet *); void UTHFreePackets(Packet **, int); +Flow *UTHBuildFlow(int family, char *src, char *dst, Port sp, Port dp); +void UTHFreeFlow(Flow *flow); + int UTHAppendSigs(DetectEngineCtx *, char **, int); int UTHMatchPackets(DetectEngineCtx *, Packet **, int); int UTHPacketMatchSig(Packet *p, char *);