50 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s);
53 static void FlagsRegisterTests(
void);
97 if (!(PacketIsTCP(
p))) {
101 const TCPHdr *tcph = PacketGetTCP(
p);
135 DetectFlagsFree(NULL, du8);
147 SCDetectU8Free(de_ptr);
178 if (!(fl->mode == DetectUintModeNegBitmask) && (fl->arg1 ==
TH_SYN)) {
192 if (!(PacketIsTCP(
p))) {
197 if (!PrefilterPacketHeaderExtraMatch(
ctx,
p))
200 const TCPHdr *tcph = PacketGetTCP(
p);
203 du8.mode =
ctx->v1.u8[0];
204 du8.arg1 =
ctx->v1.u8[1];
205 du8.arg2 =
ctx->v1.u8[2];
208 PrefilterAddSids(&det_ctx->
pmq,
ctx->sigs_array,
ctx->sigs_cnt);
226 return v.
u8[0] == a->mode && v.
u8[1] == a->arg1 && v.
u8[2] == a->arg2;
232 PrefilterPacketFlagsSet, PrefilterPacketFlagsCompare, PrefilterPacketFlagsMatch);
235 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s)
251 static int FlagsTestParse03 (
void)
258 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
259 memset(&tcph, 0,
sizeof(
TCPHdr));
269 FAIL_IF(de->mode != DetectUintModeBitmask);
278 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
292 static int FlagsTestParse04 (
void)
299 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
300 memset(&tcph, 0,
sizeof(
TCPHdr));
310 FAIL_IF(de->mode != DetectUintModeBitmask);
319 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
332 static int FlagsTestParse05 (
void)
339 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
340 memset(&tcph, 0,
sizeof(
TCPHdr));
350 FAIL_IF(de->mode != DetectUintModeBitmask);
359 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
373 static int FlagsTestParse06 (
void)
380 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
381 memset(&tcph, 0,
sizeof(
TCPHdr));
391 FAIL_IF(de->mode != DetectUintModeBitmask);
400 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
414 static int FlagsTestParse07 (
void)
421 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
422 memset(&tcph, 0,
sizeof(
TCPHdr));
432 FAIL_IF(de->mode != DetectUintModeNegBitmask);
441 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
455 static int FlagsTestParse08 (
void)
462 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
463 memset(&tcph, 0,
sizeof(
TCPHdr));
473 FAIL_IF(de->mode != DetectUintModeNegBitmask);
481 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
495 static int FlagsTestParse09 (
void)
502 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
503 memset(&tcph, 0,
sizeof(
TCPHdr));
513 FAIL_IF(de->mode != DetectUintModeNegBitmask);
522 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
536 static int FlagsTestParse10 (
void)
543 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
544 memset(&tcph, 0,
sizeof(
TCPHdr));
555 FAIL_IF(de->mode != DetectUintModeNegBitmask);
563 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
577 static int FlagsTestParse11 (
void)
584 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
585 memset(&tcph, 0,
sizeof(
TCPHdr));
595 FAIL_IF(de->mode != DetectUintModeBitmask);
604 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
618 static int FlagsTestParse12 (
void)
625 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
626 memset(&tcph, 0,
sizeof(
TCPHdr));
644 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
652 static int FlagsTestParse15(
void)
659 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
660 memset(&tcph, 0,
sizeof(
TCPHdr));
679 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
687 static int FlagsTestParse16(
void)
694 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
695 memset(&tcph, 0,
sizeof(
TCPHdr));
714 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
726 static int FlagsTestParse17(
void)
733 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
734 memset(&tcph, 0,
sizeof(
TCPHdr));
753 int ret = DetectFlagsMatch(NULL,
p, NULL, sm->
ctx);
764 static void FlagsRegisterTests(
void)