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 if (v.
u8[0] == a->mode && v.
u8[1] == a->arg1 && v.
u8[2] == a->arg2)
235 PrefilterPacketFlagsSet, PrefilterPacketFlagsCompare, PrefilterPacketFlagsMatch);
238 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s)
254 static int FlagsTestParse03 (
void)
261 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
262 memset(&tcph, 0,
sizeof(
TCPHdr));
272 FAIL_IF(de->mode != DetectUintModeBitmask);
281 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
295 static int FlagsTestParse04 (
void)
302 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
303 memset(&tcph, 0,
sizeof(
TCPHdr));
313 FAIL_IF(de->mode != DetectUintModeBitmask);
322 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
335 static int FlagsTestParse05 (
void)
342 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
343 memset(&tcph, 0,
sizeof(
TCPHdr));
353 FAIL_IF(de->mode != DetectUintModeBitmask);
362 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
376 static int FlagsTestParse06 (
void)
383 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
384 memset(&tcph, 0,
sizeof(
TCPHdr));
394 FAIL_IF(de->mode != DetectUintModeBitmask);
403 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
417 static int FlagsTestParse07 (
void)
424 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
425 memset(&tcph, 0,
sizeof(
TCPHdr));
435 FAIL_IF(de->mode != DetectUintModeNegBitmask);
444 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
458 static int FlagsTestParse08 (
void)
465 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
466 memset(&tcph, 0,
sizeof(
TCPHdr));
476 FAIL_IF(de->mode != DetectUintModeNegBitmask);
484 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
498 static int FlagsTestParse09 (
void)
505 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
506 memset(&tcph, 0,
sizeof(
TCPHdr));
516 FAIL_IF(de->mode != DetectUintModeNegBitmask);
525 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
539 static int FlagsTestParse10 (
void)
546 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
547 memset(&tcph, 0,
sizeof(
TCPHdr));
558 FAIL_IF(de->mode != DetectUintModeNegBitmask);
566 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
580 static int FlagsTestParse11 (
void)
587 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
588 memset(&tcph, 0,
sizeof(
TCPHdr));
598 FAIL_IF(de->mode != DetectUintModeBitmask);
607 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
621 static int FlagsTestParse12 (
void)
628 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
629 memset(&tcph, 0,
sizeof(
TCPHdr));
647 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
655 static int FlagsTestParse15(
void)
662 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
663 memset(&tcph, 0,
sizeof(
TCPHdr));
682 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
690 static int FlagsTestParse16(
void)
697 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
698 memset(&tcph, 0,
sizeof(
TCPHdr));
717 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
729 static int FlagsTestParse17(
void)
736 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
737 memset(&tcph, 0,
sizeof(
TCPHdr));
756 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
767 static void FlagsRegisterTests(
void)