modbus: register logger functions

pull/2081/head
Mats Klepsland 10 years ago committed by Victor Julien
parent c52fe9a5fa
commit 593f81527a

@ -249,6 +249,21 @@ void *ModbusGetTx(void *alstate, uint64_t tx_id) {
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);
}
@ -1480,6 +1495,8 @@ void RegisterModbusParsers(void)
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);

@ -83,6 +83,7 @@ typedef struct ModbusTransaction_ {
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;

Loading…
Cancel
Save