]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ssh: implement DetectFlags API
authorVictor Julien <victor@inliniac.net>
Mon, 16 Oct 2017 13:48:05 +0000 (15:48 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 19 Jan 2018 09:12:50 +0000 (10:12 +0100)
src/app-layer-ssh.c
src/app-layer-ssh.h

index b76d05edcdd0a4f7d6c7d8f7bc842bf5e69a91b8..624a45ef7283e89c7bb3c915a582b9841aaeef9f 100644 (file)
@@ -559,17 +559,24 @@ static LoggerId SSHGetTxLogged(void *state, void *tx)
     return 0;
 }
 
-static uint64_t SSHGetTxMpmIDs(void *vtx)
+static uint64_t SSHGetTxDetectFlags(void *vtx, uint8_t dir)
 {
     SshState *ssh_state = (SshState *)vtx;
-    return ssh_state->mpm_ids;
+    if (dir & STREAM_TOSERVER) {
+        return ssh_state->detect_flags_ts;
+    } else {
+        return ssh_state->detect_flags_tc;
+    }
 }
 
-static int SSHSetTxMpmIDs(void *vtx, uint64_t mpm_ids)
+static void SSHSetTxDetectFlags(void *vtx, uint8_t dir, uint64_t flags)
 {
     SshState *ssh_state = (SshState *)vtx;
-    ssh_state->mpm_ids = mpm_ids;
-    return 0;
+    if (dir & STREAM_TOSERVER) {
+        ssh_state->detect_flags_ts = flags;
+    } else {
+        ssh_state->detect_flags_tc = flags;
+    }
 }
 
 static int SSHGetAlstateProgressCompletionStatus(uint8_t direction)
@@ -647,8 +654,8 @@ void RegisterSSHParsers(void)
         AppLayerParserRegisterGetStateProgressFunc(IPPROTO_TCP, ALPROTO_SSH, SSHGetAlstateProgress);
 
         AppLayerParserRegisterLoggerFuncs(IPPROTO_TCP, ALPROTO_SSH, SSHGetTxLogged, SSHSetTxLogged);
-        AppLayerParserRegisterMpmIDsFuncs(IPPROTO_TCP, ALPROTO_SSH,
-                SSHGetTxMpmIDs, SSHSetTxMpmIDs);
+        AppLayerParserRegisterDetectFlagsFuncs(IPPROTO_TCP, ALPROTO_SSH,
+                SSHGetTxDetectFlags, SSHSetTxDetectFlags);
 
         AppLayerParserRegisterGetStateProgressCompletionStatus(ALPROTO_SSH,
                                                                SSHGetAlstateProgressCompletionStatus);
index d5b6d3a8a54d8e4cbff246aeff41231a5f3e0589..ef988b3c0d318eff6c95cad2db76318f3682c781 100644 (file)
@@ -76,8 +76,8 @@ typedef struct SshState_ {
     /* specifies which loggers are done logging */
     uint32_t logged;
 
-    /* bit flags of mpms that have already run */
-    uint64_t mpm_ids;
+    uint64_t detect_flags_ts;
+    uint64_t detect_flags_tc;
 
     DetectEngineState *de_state;
 } SshState;