]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
sip: support AppLayerTxData
authorVictor Julien <victor@inliniac.net>
Sun, 7 Jun 2020 18:19:59 +0000 (20:19 +0200)
committerVictor Julien <victor@inliniac.net>
Sat, 11 Jul 2020 06:37:40 +0000 (08:37 +0200)
rust/src/sip/sip.rs

index 00be0a8bcc8f98a9a34a2e38de41a1bbd6078b4c..944c5aab84f3c4a73dca4ba88f0557cbcd0d2a0f 100755 (executable)
@@ -56,7 +56,7 @@ pub struct SIPTransaction {
     pub response_line: Option<String>,
     de_state: Option<*mut core::DetectEngineState>,
     events: *mut core::AppLayerDecoderEvents,
-    logged: applayer::LoggerFlags,
+    tx_data: applayer::AppLayerTxData,
 }
 
 impl SIPState {
@@ -153,7 +153,7 @@ impl SIPTransaction {
             request_line: None,
             response_line: None,
             events: std::ptr::null_mut(),
-            logged: applayer::LoggerFlags::new(),
+            tx_data: applayer::AppLayerTxData::new(),
         }
     }
 }
@@ -219,25 +219,6 @@ pub extern "C" fn rs_sip_tx_get_alstate_progress(
     1
 }
 
-#[no_mangle]
-pub extern "C" fn rs_sip_tx_set_logged(
-    _state: *mut std::os::raw::c_void,
-    tx: *mut std::os::raw::c_void,
-    logged: u32,
-) {
-    let tx = cast_pointer!(tx, SIPTransaction);
-    tx.logged.set(logged);
-}
-
-#[no_mangle]
-pub extern "C" fn rs_sip_tx_get_logged(
-    _state: *mut std::os::raw::c_void,
-    tx: *mut std::os::raw::c_void,
-) -> u32 {
-    let tx = cast_pointer!(tx, SIPTransaction);
-    return tx.logged.get();
-}
-
 #[no_mangle]
 pub extern "C" fn rs_sip_state_set_tx_detect_state(
     tx: *mut std::os::raw::c_void,
@@ -377,6 +358,8 @@ pub extern "C" fn rs_sip_parse_response(
     state.parse_response(buf).into()
 }
 
+export_tx_data_get!(rs_sip_get_tx_data, SIPTransaction);
+
 const PARSER_NAME: &'static [u8] = b"sip\0";
 
 #[no_mangle]
@@ -399,8 +382,8 @@ pub unsafe extern "C" fn rs_sip_register_parser() {
         get_tx: rs_sip_state_get_tx,
         tx_get_comp_st: rs_sip_state_progress_completion_status,
         tx_get_progress: rs_sip_tx_get_alstate_progress,
-        get_tx_logged: Some(rs_sip_tx_get_logged),
-        set_tx_logged: Some(rs_sip_tx_set_logged),
+        get_tx_logged: None,
+        set_tx_logged: None,
         get_de_state: rs_sip_state_get_tx_detect_state,
         set_de_state: rs_sip_state_set_tx_detect_state,
         get_events: Some(rs_sip_state_get_events),
@@ -412,7 +395,7 @@ pub unsafe extern "C" fn rs_sip_register_parser() {
         get_tx_iterator: None,
         get_tx_detect_flags: None,
         set_tx_detect_flags: None,
-        get_tx_data: None,
+        get_tx_data: Some(rs_sip_get_tx_data),
         apply_tx_config: None,
     };