]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ssh: make hooks available
authorPhilippe Antoine <pantoine@oisf.net>
Tue, 15 Apr 2025 12:28:51 +0000 (14:28 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 25 Apr 2025 07:51:48 +0000 (09:51 +0200)
Allows signature like `alert ssh:request_banner_done`

rust/src/ssh/ssh.rs

index a4b7b224639847cd7eac61b0de22032d1b88d37a..7c25dd2b69f3b6e45215987e6671dbbdef4925e8 100644 (file)
@@ -64,7 +64,8 @@ pub enum SSHEvent {
 }
 
 #[repr(u8)]
-#[derive(Copy, Clone, PartialOrd, PartialEq, Eq)]
+#[derive(AppLayerState, Copy, Clone, PartialOrd, PartialEq, Eq)]
+#[suricata(alstate_strip_prefix = "SshState")]
 pub enum SSHConnectionState {
     SshStateInProgress = 0,
     SshStateBannerWaitEol = 1,
@@ -552,8 +553,8 @@ pub unsafe extern "C" fn SCRegisterSshParser() {
         flags: 0,
         get_frame_id_by_name: Some(SshFrameType::ffi_id_from_name),
         get_frame_name_by_id: Some(SshFrameType::ffi_name_from_id),
-        get_state_id_by_name: None,
-        get_state_name_by_id: None,
+        get_state_id_by_name: Some(SSHConnectionState::ffi_id_from_name),
+        get_state_name_by_id: Some(SSHConnectionState::ffi_name_from_id),
     };
 
     let ip_proto_str = CString::new("tcp").unwrap();