if (s->mask & SIG_MASK_REQUIRE_ENGINE_EVENT) {
jb_append_string(ctx.js, "engine_event");
}
+ if (s->mask & SIG_MASK_REQUIRE_REAL_PKT) {
+ jb_append_string(ctx.js, "real_pkt");
+ }
jb_close(ctx.js);
switch (s->type) {
PacketCreateMask(Packet *p, SignatureMask *mask, AppProto alproto,
bool app_decoder_events)
{
+ if (!(PKT_IS_PSEUDOPKT(p))) {
+ (*mask) |= SIG_MASK_REQUIRE_REAL_PKT;
+ }
if (!(p->flags & PKT_NOPAYLOAD_INSPECTION) && p->payload_len > 0) {
SCLogDebug("packet has payload");
(*mask) |= SIG_MASK_REQUIRE_PAYLOAD;
{
SCEnter();
+ if ((s->flags & (SIG_FLAG_REQUIRE_PACKET | SIG_FLAG_REQUIRE_STREAM)) ==
+ SIG_FLAG_REQUIRE_PACKET) {
+ s->mask |= SIG_MASK_REQUIRE_REAL_PKT;
+ }
if (s->init_data->smlists[DETECT_SM_LIST_PMATCH] != NULL) {
s->mask |= SIG_MASK_REQUIRE_PAYLOAD;
SCLogDebug("sig requires payload");
#define SIG_MASK_REQUIRE_FLAGS_INITDEINIT BIT_U8(2) /* SYN, FIN, RST */
#define SIG_MASK_REQUIRE_FLAGS_UNUSUAL BIT_U8(3) /* URG, ECN, CWR */
#define SIG_MASK_REQUIRE_NO_PAYLOAD BIT_U8(4)
-// vacancy 2x
+#define SIG_MASK_REQUIRE_REAL_PKT BIT_U8(5)
+// vacancy 1x
#define SIG_MASK_REQUIRE_ENGINE_EVENT BIT_U8(7)
/* for now a uint8_t is enough */