modbus: add tx detect flags

pull/4405/head
Jason Ish 6 years ago
parent fa4b9d37c2
commit 21f014f5c3

@ -274,6 +274,26 @@ static LoggerId ModbusGetTxLogged(void *alstate, void *vtx)
return tx->logged;
}
static void ModbusSetTxDetectFlags(void *vtx, uint8_t dir, uint64_t flags)
{
ModbusTransaction *tx = (ModbusTransaction *)vtx;
if (dir & STREAM_TOSERVER) {
tx->detect_flags_ts = flags;
} else {
tx->detect_flags_ts = flags;
}
}
static uint64_t ModbusGetTxDetectFlags(void *vtx, uint8_t dir)
{
ModbusTransaction *tx = (ModbusTransaction *)vtx;
if (dir & STREAM_TOSERVER) {
return tx->detect_flags_ts;
} else {
return tx->detect_flags_tc;
}
}
static uint64_t ModbusGetTxCnt(void *alstate)
{
return ((uint64_t) ((ModbusState *) alstate)->transaction_max);
@ -1547,6 +1567,8 @@ void RegisterModbusParsers(void)
AppLayerParserRegisterGetEventInfoById(IPPROTO_TCP, ALPROTO_MODBUS, ModbusStateGetEventInfoById);
AppLayerParserRegisterParserAcceptableDataDirection(IPPROTO_TCP, ALPROTO_MODBUS, STREAM_TOSERVER);
AppLayerParserRegisterDetectFlagsFuncs(IPPROTO_TCP, ALPROTO_MODBUS,
ModbusGetTxDetectFlags, ModbusSetTxDetectFlags);
AppLayerParserSetStreamDepth(IPPROTO_TCP, ALPROTO_MODBUS, stream_depth);
} else {

@ -114,6 +114,8 @@ typedef struct ModbusTransaction_ {
AppLayerDecoderEvents *decoder_events; /**< per tx events */
DetectEngineState *de_state;
uint64_t detect_flags_ts;
uint64_t detect_flags_tc;
TAILQ_ENTRY(ModbusTransaction_) next;
} ModbusTransaction;

Loading…
Cancel
Save