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)
+{
+ FtpDataState *ftp_state = (FtpDataState *)vtx;
+ if (dir & STREAM_TOSERVER) {
+ return ftp_state->detect_flags_ts;
+ } else {
+ return ftp_state->detect_flags_tc;
+ }
+}
+
static void FTPDataStateTransactionFree(void *state, uint64_t tx_id)
{
/* do nothing */
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);