}
-static uint64_t FTPGetTxDetectFlags(void *vtx, uint8_t dir)
+static AppLayerTxData *FTPGetTxData(void *vtx)
{
FTPTransaction *tx = (FTPTransaction *)vtx;
- if (dir & STREAM_TOSERVER) {
- return tx->detect_flags_ts;
- } else {
- return tx->detect_flags_tc;
- }
-}
-
-static void FTPSetTxDetectFlags(void *vtx, uint8_t dir, uint64_t flags)
-{
- FTPTransaction *tx = (FTPTransaction *)vtx;
- if (dir & STREAM_TOSERVER) {
- tx->detect_flags_ts = flags;
- } else {
- tx->detect_flags_tc = flags;
- }
+ return &tx->tx_data;
}
static void FTPStateTransactionFree(void *state, uint64_t tx_id)
SCReturnStruct(APP_LAYER_OK);
}
-static void FTPStateSetTxLogged(void *state, void *vtx, LoggerId logged)
-{
- FTPTransaction *tx = vtx;
- tx->logged = logged;
-}
-
-static LoggerId FTPStateGetTxLogged(void *state, void *vtx)
-{
- FTPTransaction *tx = vtx;
- return tx->logged;
-}
static AppLayerResult FTPDataParseRequest(Flow *f, void *ftp_state,
AppLayerParserState *pstate,
const uint8_t *input, uint32_t input_len,
return ftp_state->de_state;
}
-static void FTPDataSetTxDetectFlags(void *vtx, uint8_t dir, uint64_t flags)
-{
- FtpDataState *ftp_state = (FtpDataState *)vtx;
- if (dir & STREAM_TOSERVER) {
- ftp_state->detect_flags_ts = flags;
- } else {
- ftp_state->detect_flags_tc = flags;
- }
-}
-
-static uint64_t FTPDataGetTxDetectFlags(void *vtx, uint8_t dir)
+static AppLayerTxData *FTPDataGetTxData(void *vtx)
{
FtpDataState *ftp_state = (FtpDataState *)vtx;
- if (dir & STREAM_TOSERVER) {
- return ftp_state->detect_flags_ts;
- } else {
- return ftp_state->detect_flags_tc;
- }
+ return &ftp_state->tx_data;
}
static void FTPDataStateTransactionFree(void *state, uint64_t tx_id)
AppLayerParserRegisterDetectStateFuncs(IPPROTO_TCP, ALPROTO_FTP,
FTPGetTxDetectState, FTPSetTxDetectState);
- AppLayerParserRegisterDetectFlagsFuncs(IPPROTO_TCP, ALPROTO_FTP,
- FTPGetTxDetectFlags, FTPSetTxDetectFlags);
-
AppLayerParserRegisterGetTx(IPPROTO_TCP, ALPROTO_FTP, FTPGetTx);
- AppLayerParserRegisterLoggerFuncs(IPPROTO_TCP, ALPROTO_FTP, FTPStateGetTxLogged,
- FTPStateSetTxLogged);
+ AppLayerParserRegisterTxDataFunc(IPPROTO_TCP, ALPROTO_FTP, FTPGetTxData);
AppLayerParserRegisterLocalStorageFunc(IPPROTO_TCP, ALPROTO_FTP, FTPLocalStorageAlloc,
FTPLocalStorageFree);
AppLayerParserRegisterTxFreeFunc(IPPROTO_TCP, ALPROTO_FTPDATA, FTPDataStateTransactionFree);
AppLayerParserRegisterDetectStateFuncs(IPPROTO_TCP, ALPROTO_FTPDATA,
FTPDataGetTxDetectState, FTPDataSetTxDetectState);
- AppLayerParserRegisterDetectFlagsFuncs(IPPROTO_TCP, ALPROTO_FTPDATA,
- FTPDataGetTxDetectFlags, FTPDataSetTxDetectFlags);
AppLayerParserRegisterGetFilesFunc(IPPROTO_TCP, ALPROTO_FTPDATA, FTPDataStateGetFiles);
AppLayerParserRegisterGetTx(IPPROTO_TCP, ALPROTO_FTPDATA, FTPDataGetTx);
+ AppLayerParserRegisterTxDataFunc(IPPROTO_TCP, ALPROTO_FTPDATA, FTPDataGetTxData);
AppLayerParserRegisterGetTxCnt(IPPROTO_TCP, ALPROTO_FTPDATA, FTPDataGetTxCnt);