From: Victor Julien Date: Mon, 16 Oct 2017 13:48:05 +0000 (+0200) Subject: ssh: implement DetectFlags API X-Git-Tag: suricata-4.1.0-beta1~328 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bed6e9caecad5b661874d1166901217609f80dd;p=thirdparty%2Fsuricata.git ssh: implement DetectFlags API --- diff --git a/src/app-layer-ssh.c b/src/app-layer-ssh.c index b76d05edcd..624a45ef72 100644 --- a/src/app-layer-ssh.c +++ b/src/app-layer-ssh.c @@ -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); diff --git a/src/app-layer-ssh.h b/src/app-layer-ssh.h index d5b6d3a8a5..ef988b3c0d 100644 --- a/src/app-layer-ssh.h +++ b/src/app-layer-ssh.h @@ -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;