return NULL;
}
+void ModbusSetTxLogged(void *alstate, void *vtx, uint32_t logger)
+{
+ ModbusTransaction *tx = (ModbusTransaction *)vtx;
+ tx->logged |= logger;
+}
+
+int ModbusGetTxLogged(void *alstate, void *vtx, uint32_t logger)
+{
+ ModbusTransaction *tx = (ModbusTransaction *)vtx;
+ if (tx->logged & logger)
+ return 1;
+
+ return 0;
+}
+
uint64_t ModbusGetTxCnt(void *alstate) {
return ((uint64_t) ((ModbusState *) alstate)->transaction_max);
}
AppLayerParserRegisterGetTx(IPPROTO_TCP, ALPROTO_MODBUS, ModbusGetTx);
AppLayerParserRegisterGetTxCnt(IPPROTO_TCP, ALPROTO_MODBUS, ModbusGetTxCnt);
+ AppLayerParserRegisterLoggerFuncs(IPPROTO_TCP, ALPROTO_MODBUS, ModbusGetTxLogged,
+ ModbusSetTxLogged);
AppLayerParserRegisterTxFreeFunc(IPPROTO_TCP, ALPROTO_MODBUS, ModbusStateTxFree);
AppLayerParserRegisterGetStateProgressFunc(IPPROTO_TCP, ALPROTO_MODBUS, ModbusGetAlstateProgress);
struct ModbusState_ *modbus;
uint64_t tx_num; /**< internal: id */
+ uint32_t logged; /**< flags indicating which loggers have logged */
uint16_t transactionId;
uint16_t length;
uint8_t function;