else
ffc = htp_state->files_ts;
- /* inspect files for this transaction */
- det_ctx->tx_id = (uint16_t)tx_id;
-
int match = DetectFileInspect(tv, det_ctx, f, s, flags, ffc);
if (match == 1) {
r = DETECT_ENGINE_INSPECT_SIG_MATCH;
tx = AppLayerParserGetTx(f->proto, alproto, alstate, tx_id);
if (tx == NULL)
continue;
+ det_ctx->tx_id = tx_id;
+ det_ctx->tx_id_set = 1;
engine = app_inspection_engine[FlowGetProtoMapping(f->proto)][alproto][direction];
inspect_flags = 0;
while (engine != NULL) {
SCMutexUnlock(&f->de_state_m);
end:
+ det_ctx->tx_id = 0;
+ det_ctx->tx_id_set = 0;
return alert_cnt ? 1:0;
}
}
}
+ det_ctx->tx_id = inspect_tx_id;
+ det_ctx->tx_id_set = 1;
engine = app_inspection_engine[FlowGetProtoMapping(f->proto)][alproto][(flags & STREAM_TOSERVER) ? 0 : 1];
inspect_tx = AppLayerParserGetTx(f->proto, alproto, alstate, inspect_tx_id);
if (inspect_tx == NULL) {
DetectEngineStateReset(f->de_state, flags);
SCMutexUnlock(&f->de_state_m);
+ det_ctx->tx_id = 0;
+ det_ctx->tx_id_set = 0;
return;
}
uint16_t discontinue_matching;
uint16_t flags;
+ /* bool: if tx_id is set, this is 1, otherwise 0 */
+ uint16_t tx_id_set;
/** ID of the transaction currently being inspected. */
uint64_t tx_id;