51 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s);
54 static void FlagsRegisterTests(
void);
98 if (!(PacketIsTCP(p))) {
102 const TCPHdr *tcph = PacketGetTCP(p);
136 DetectFlagsFree(NULL, du8);
148 SCDetectU8Free(de_ptr);
179 if (!(fl->mode == DetectUintModeNegBitmask) && (fl->arg1 ==
TH_SYN)) {
193 if (!(PacketIsTCP(p))) {
198 if (!PrefilterPacketHeaderExtraMatch(
ctx, p))
201 const TCPHdr *tcph = PacketGetTCP(p);
204 du8.mode =
ctx->v1.u8[0];
205 du8.arg1 =
ctx->v1.u8[1];
206 du8.arg2 =
ctx->v1.u8[2];
209 PrefilterAddSids(&det_ctx->
pmq,
ctx->sigs_array,
ctx->sigs_cnt);
227 return v.
u8[0] == a->mode && v.
u8[1] == a->arg1 && v.
u8[2] == a->arg2;
233 PrefilterPacketFlagsSet, PrefilterPacketFlagsCompare, PrefilterPacketFlagsMatch);
236 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s)
252 static int FlagsTestParse03 (
void)
259 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
260 memset(&tcph, 0,
sizeof(
TCPHdr));
270 FAIL_IF(de->mode != DetectUintModeBitmask);
279 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
293 static int FlagsTestParse04 (
void)
300 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
301 memset(&tcph, 0,
sizeof(
TCPHdr));
311 FAIL_IF(de->mode != DetectUintModeBitmask);
320 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
333 static int FlagsTestParse05 (
void)
340 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
341 memset(&tcph, 0,
sizeof(
TCPHdr));
351 FAIL_IF(de->mode != DetectUintModeBitmask);
360 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
374 static int FlagsTestParse06 (
void)
381 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
382 memset(&tcph, 0,
sizeof(
TCPHdr));
392 FAIL_IF(de->mode != DetectUintModeBitmask);
401 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
415 static int FlagsTestParse07 (
void)
422 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
423 memset(&tcph, 0,
sizeof(
TCPHdr));
433 FAIL_IF(de->mode != DetectUintModeNegBitmask);
442 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
456 static int FlagsTestParse08 (
void)
463 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
464 memset(&tcph, 0,
sizeof(
TCPHdr));
474 FAIL_IF(de->mode != DetectUintModeNegBitmask);
482 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
496 static int FlagsTestParse09 (
void)
503 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
504 memset(&tcph, 0,
sizeof(
TCPHdr));
514 FAIL_IF(de->mode != DetectUintModeNegBitmask);
523 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
537 static int FlagsTestParse10 (
void)
544 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
545 memset(&tcph, 0,
sizeof(
TCPHdr));
556 FAIL_IF(de->mode != DetectUintModeNegBitmask);
564 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
578 static int FlagsTestParse11 (
void)
585 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
586 memset(&tcph, 0,
sizeof(
TCPHdr));
596 FAIL_IF(de->mode != DetectUintModeBitmask);
605 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
619 static int FlagsTestParse12 (
void)
626 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
627 memset(&tcph, 0,
sizeof(
TCPHdr));
645 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
653 static int FlagsTestParse15(
void)
660 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
661 memset(&tcph, 0,
sizeof(
TCPHdr));
680 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
688 static int FlagsTestParse16(
void)
695 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
696 memset(&tcph, 0,
sizeof(
TCPHdr));
715 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
727 static int FlagsTestParse17(
void)
734 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
735 memset(&tcph, 0,
sizeof(
TCPHdr));
754 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
765 static void FlagsRegisterTests(
void)