26 static int DetectFlowPktsToClientMatch(
29 if (p->
flow == NULL) {
40 rs_detect_u32_free(ptr);
51 DetectFlowPktsToClientFree(
de_ctx, du32);
59 static void PrefilterPacketFlowPktsToClientMatch(
63 if (!PrefilterPacketHeaderExtraMatch(ctx, p))
67 du32.mode = ctx->
v1.
u8[0];
68 du32.arg1 = ctx->
v1.
u32[1];
69 du32.arg2 = ctx->
v1.
u32[2];
70 if (DetectFlowPktsToClientMatch(det_ctx, p, NULL, (
const SigMatchCtx *)&du32)) {
81 static bool PrefilterFlowPktsToClientIsPrefilterable(
const Signature *s)
95 PrefilterFlowPktsToClientIsPrefilterable;
99 static int DetectFlowPktsToServerMatch(
102 if (p->
flow == NULL) {
113 rs_detect_u32_free(ptr);
124 DetectFlowPktsToServerFree(
de_ctx, du32);
132 static void PrefilterPacketFlowPktsToServerMatch(
136 if (!PrefilterPacketHeaderExtraMatch(ctx, p))
140 du32.mode = ctx->
v1.
u8[0];
141 du32.arg1 = ctx->
v1.
u32[1];
142 du32.arg2 = ctx->
v1.
u32[2];
143 if (DetectFlowPktsToServerMatch(det_ctx, p, NULL, (
const SigMatchCtx *)&du32)) {
154 static bool PrefilterFlowPktsToServerIsPrefilterable(
const Signature *s)
168 PrefilterFlowPktsToServerIsPrefilterable;
172 static int DetectFlowBytesToClientMatch(
175 if (p->
flow == NULL) {
186 rs_detect_u64_free(ptr);
197 DetectFlowBytesToClientFree(
de_ctx, du64);
210 "/rules/flow-keywords.html#flow-bytes_toclient";
216 static int DetectFlowBytesToServerMatch(
219 if (p->
flow == NULL) {
230 rs_detect_u64_free(ptr);
241 DetectFlowBytesToServerFree(
de_ctx, du64);
254 "/rules/flow-keywords.html#flow-bytes_toserver";