51 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s);
54 static void FlagsRegisterTests(
void);
99 if (!(PacketIsTCP(p))) {
103 const TCPHdr *tcph = PacketGetTCP(p);
137 DetectFlagsFree(NULL, du8);
149 SCDetectU8Free(de_ptr);
180 if (!(fl->mode == DetectUintModeNegBitmask) && (fl->arg1 ==
TH_SYN)) {
194 if (!(PacketIsTCP(p))) {
199 if (!PrefilterPacketHeaderExtraMatch(
ctx, p))
202 const TCPHdr *tcph = PacketGetTCP(p);
205 du8.mode =
ctx->v1.u8[0];
206 du8.arg1 =
ctx->v1.u8[1];
207 du8.arg2 =
ctx->v1.u8[2];
210 PrefilterAddSids(&det_ctx->
pmq,
ctx->sigs_array,
ctx->sigs_cnt);
228 if (v.
u8[0] == a->mode && v.
u8[1] == a->arg1 && v.
u8[2] == a->arg2)
236 PrefilterPacketFlagsSet, PrefilterPacketFlagsCompare, PrefilterPacketFlagsMatch);
239 static bool PrefilterTcpFlagsIsPrefilterable(
const Signature *s)
255 static int FlagsTestParse03 (
void)
262 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
263 memset(&tcph, 0,
sizeof(
TCPHdr));
273 FAIL_IF(de->mode != DetectUintModeBitmask);
282 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
296 static int FlagsTestParse04 (
void)
303 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
304 memset(&tcph, 0,
sizeof(
TCPHdr));
314 FAIL_IF(de->mode != DetectUintModeBitmask);
323 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
336 static int FlagsTestParse05 (
void)
343 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
344 memset(&tcph, 0,
sizeof(
TCPHdr));
354 FAIL_IF(de->mode != DetectUintModeBitmask);
363 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
377 static int FlagsTestParse06 (
void)
384 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
385 memset(&tcph, 0,
sizeof(
TCPHdr));
395 FAIL_IF(de->mode != DetectUintModeBitmask);
404 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
418 static int FlagsTestParse07 (
void)
425 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
426 memset(&tcph, 0,
sizeof(
TCPHdr));
436 FAIL_IF(de->mode != DetectUintModeNegBitmask);
445 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
459 static int FlagsTestParse08 (
void)
466 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
467 memset(&tcph, 0,
sizeof(
TCPHdr));
477 FAIL_IF(de->mode != DetectUintModeNegBitmask);
485 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
499 static int FlagsTestParse09 (
void)
506 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
507 memset(&tcph, 0,
sizeof(
TCPHdr));
517 FAIL_IF(de->mode != DetectUintModeNegBitmask);
526 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
540 static int FlagsTestParse10 (
void)
547 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
548 memset(&tcph, 0,
sizeof(
TCPHdr));
559 FAIL_IF(de->mode != DetectUintModeNegBitmask);
567 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
581 static int FlagsTestParse11 (
void)
588 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
589 memset(&tcph, 0,
sizeof(
TCPHdr));
599 FAIL_IF(de->mode != DetectUintModeBitmask);
608 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
622 static int FlagsTestParse12 (
void)
629 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
630 memset(&tcph, 0,
sizeof(
TCPHdr));
648 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
656 static int FlagsTestParse15(
void)
663 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
664 memset(&tcph, 0,
sizeof(
TCPHdr));
683 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
691 static int FlagsTestParse16(
void)
698 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
699 memset(&tcph, 0,
sizeof(
TCPHdr));
718 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
730 static int FlagsTestParse17(
void)
737 memset(&ipv4h, 0,
sizeof(
IPV4Hdr));
738 memset(&tcph, 0,
sizeof(
TCPHdr));
757 int ret = DetectFlagsMatch(NULL, p, NULL, sm->
ctx);
768 static void FlagsRegisterTests(
void)