From 4ff51a0e07cc84e64cb9b88b58fe600ab459cabc Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Sun, 7 Jun 2020 20:19:59 +0200 Subject: [PATCH] sip: support AppLayerTxData --- rust/src/sip/sip.rs | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/rust/src/sip/sip.rs b/rust/src/sip/sip.rs index 00be0a8bcc..944c5aab84 100755 --- a/rust/src/sip/sip.rs +++ b/rust/src/sip/sip.rs @@ -56,7 +56,7 @@ pub struct SIPTransaction { pub response_line: Option, 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, };