]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust/sip: replace rs_ naming with SC
authorJason Ish <jason.ish@oisf.net>
Fri, 2 May 2025 21:53:51 +0000 (15:53 -0600)
committerVictor Julien <victor@inliniac.net>
Sat, 3 May 2025 06:19:41 +0000 (08:19 +0200)
rust/src/sip/detect.rs
rust/src/sip/log.rs
rust/src/sip/parser.rs
rust/src/sip/sip.rs
src/app-layer-parser.c
src/detect-sip-method.c
src/detect-sip-uri.c
src/output.c

index d4f61f94794685403404926d26126cb89467c7d5..7bedd9169bb19c27416d73026251c9da1c45b72b 100644 (file)
@@ -41,7 +41,7 @@ static mut G_SIP_CONTENT_TYPE_HDR_BUFFER_ID: c_int = 0;
 static mut G_SIP_CONTENT_LENGTH_HDR_BUFFER_ID: c_int = 0;
 
 #[no_mangle]
-pub unsafe extern "C" fn rs_sip_tx_get_method(
+pub unsafe extern "C" fn SCSipTxGetMethod(
     tx: &SIPTransaction, buffer: *mut *const u8, buffer_len: *mut u32,
 ) -> u8 {
     if let Some(ref r) = tx.request {
@@ -60,7 +60,7 @@ pub unsafe extern "C" fn rs_sip_tx_get_method(
 }
 
 #[no_mangle]
-pub unsafe extern "C" fn rs_sip_tx_get_uri(
+pub unsafe extern "C" fn SCSipTxGetUri(
     tx: &SIPTransaction, buffer: *mut *const u8, buffer_len: *mut u32,
 ) -> u8 {
     if let Some(ref r) = tx.request {
index 49e30a00db9520771e8f31285b68f13d3508191b..bcab30b0d4eb8aa8a251d26efd672cc4f940682a 100644 (file)
@@ -57,6 +57,6 @@ fn log(tx: &SIPTransaction, js: &mut JsonBuilder) -> Result<(), JsonError> {
 }
 
 #[no_mangle]
-pub extern "C" fn rs_sip_log_json(tx: &SIPTransaction, js: &mut JsonBuilder) -> bool {
+pub extern "C" fn SCSipLogJson(tx: &SIPTransaction, js: &mut JsonBuilder) -> bool {
     log(tx, js).is_ok()
 }
index bc66640da62e6f0b2620ea824a6dee849a76dcbe..b833616fe5330f32fbe37979956d0fbf69cd7f06 100644 (file)
@@ -113,7 +113,7 @@ fn expand_header_name(h: &str) -> &str {
     }
 }
 
-pub fn sip_parse_request(oi: &[u8]) -> IResult<&[u8], Request> {
+pub fn parse_request(oi: &[u8]) -> IResult<&[u8], Request> {
     let (i, method) = parse_method(oi)?;
     let (i, _) = char(' ')(i)?;
     let (i, path) = parse_request_uri(i)?;
@@ -143,7 +143,7 @@ pub fn sip_parse_request(oi: &[u8]) -> IResult<&[u8], Request> {
     ))
 }
 
-pub fn sip_parse_response(oi: &[u8]) -> IResult<&[u8], Response> {
+pub fn parse_response(oi: &[u8]) -> IResult<&[u8], Response> {
     let (i, version) = parse_version(oi)?;
     let (i, _) = char(' ')(i)?;
     let (i, code) = parse_code(i)?;
@@ -308,7 +308,7 @@ mod tests {
                           \r\n"
             .as_bytes();
 
-        let (_, req) = sip_parse_request(buf).unwrap();
+        let (_, req) = parse_request(buf).unwrap();
         assert_eq!(req.method, "REGISTER");
         assert_eq!(req.path, "sip:sip.cybercity.dk");
         assert_eq!(req.version, "SIP/2.0");
@@ -324,7 +324,7 @@ mod tests {
                           \r\nABCD"
             .as_bytes();
 
-        let (body, req) = sip_parse_request(buf).expect("parsing failed");
+        let (body, req) = parse_request(buf).expect("parsing failed");
         assert_eq!(req.method, "REGISTER");
         assert_eq!(req.path, "sip:sip.cybercity.dk");
         assert_eq!(req.version, "SIP/2.0");
@@ -338,7 +338,7 @@ mod tests {
                           \r\n"
             .as_bytes();
 
-        let (_, resp) = sip_parse_response(buf).unwrap();
+        let (_, resp) = parse_response(buf).unwrap();
         assert_eq!(resp.version, "SIP/2.0");
         assert_eq!(resp.code, "401");
         assert_eq!(resp.reason, "Unauthorized");
@@ -370,7 +370,7 @@ mod tests {
                           \r\n"
             .as_bytes();
 
-        let (_, req) = sip_parse_request(buf).unwrap();
+        let (_, req) = parse_request(buf).unwrap();
         assert_eq!(req.method, "REGISTER");
         assert_eq!(req.path, "sip:sip.cybercity.dk");
         assert_eq!(req.version, "SIP/2.0");
index e85bdd7ad8dc3402abfacd42cc5372e954ab0269..b58940f3465c4db35c0e717bbee8e121557478e2 100755 (executable)
@@ -128,7 +128,7 @@ impl SIPState {
         );
         SCLogDebug!("ts: pdu {:?}", _pdu);
 
-        match sip_parse_request(input) {
+        match parse_request(input) {
             Ok((_, request)) => {
                 let mut tx = self.new_tx(Direction::ToServer);
                 sip_frames_ts(flow, &stream_slice, &request, tx.id);
@@ -172,7 +172,7 @@ impl SIPState {
                 );
                 SCLogDebug!("ts: pdu {:?}", self.request_frame);
             }
-            match sip_parse_request(start) {
+            match parse_request(start) {
                 Ok((rem, request)) => {
                     let mut tx = self.new_tx(Direction::ToServer);
                     let tx_id = tx.id;
@@ -224,7 +224,7 @@ impl SIPState {
         );
         SCLogDebug!("tc: pdu {:?}", _pdu);
 
-        match sip_parse_response(input) {
+        match parse_response(input) {
             Ok((_, response)) => {
                 let mut tx = self.new_tx(Direction::ToClient);
                 sip_frames_tc(flow, &stream_slice, &response, tx.id);
@@ -267,7 +267,7 @@ impl SIPState {
                 );
                 SCLogDebug!("tc: pdu {:?}", self.request_frame);
             }
-            match sip_parse_response(start) {
+            match parse_response(start) {
                 Ok((rem, response)) => {
                     let mut tx = self.new_tx(Direction::ToClient);
                     let tx_id = tx.id;
@@ -393,8 +393,7 @@ fn sip_frames_tc(flow: *const Flow, stream_slice: &StreamSlice, r: &Response, tx
     }
 }
 
-#[no_mangle]
-pub extern "C" fn rs_sip_state_new(
+extern "C" fn sip_state_new(
     _orig_state: *mut std::os::raw::c_void, _orig_proto: AppProto,
 ) -> *mut std::os::raw::c_void {
     let state = SIPState::new();
@@ -402,14 +401,12 @@ pub extern "C" fn rs_sip_state_new(
     return Box::into_raw(boxed) as *mut _;
 }
 
-#[no_mangle]
-pub extern "C" fn rs_sip_state_free(state: *mut std::os::raw::c_void) {
+extern "C" fn sip_state_free(state: *mut std::os::raw::c_void) {
     let mut state = unsafe { Box::from_raw(state as *mut SIPState) };
     state.free();
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_state_get_tx(
+unsafe extern "C" fn sip_state_get_tx(
     state: *mut std::os::raw::c_void, tx_id: u64,
 ) -> *mut std::os::raw::c_void {
     let state = cast_pointer!(state, SIPState);
@@ -419,20 +416,17 @@ pub unsafe extern "C" fn rs_sip_state_get_tx(
     }
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 {
+unsafe extern "C" fn sip_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 {
     let state = cast_pointer!(state, SIPState);
     state.tx_id
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) {
+unsafe extern "C" fn sip_state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) {
     let state = cast_pointer!(state, SIPState);
     state.free_tx(tx_id);
 }
 
-#[no_mangle]
-pub extern "C" fn rs_sip_tx_get_alstate_progress(
+extern "C" fn sip_tx_get_alstate_progress(
     _tx: *mut std::os::raw::c_void, _direction: u8,
 ) -> std::os::raw::c_int {
     1
@@ -440,8 +434,7 @@ pub extern "C" fn rs_sip_tx_get_alstate_progress(
 
 pub static mut ALPROTO_SIP: AppProto = ALPROTO_UNKNOWN;
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_parse_request(
+unsafe extern "C" fn sip_parse_request(
     flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void,
     stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
@@ -449,8 +442,7 @@ pub unsafe extern "C" fn rs_sip_parse_request(
     state.parse_request(flow, stream_slice).into()
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_parse_request_tcp(
+unsafe extern "C" fn sip_parse_request_tcp(
     flow: *const Flow, state: *mut std::os::raw::c_void, pstate: *mut std::os::raw::c_void,
     stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
@@ -466,8 +458,7 @@ pub unsafe extern "C" fn rs_sip_parse_request_tcp(
     state.parse_request_tcp(flow, stream_slice)
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_parse_response(
+unsafe extern "C" fn sip_parse_response(
     flow: *const Flow, state: *mut std::os::raw::c_void, _pstate: *mut std::os::raw::c_void,
     stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
@@ -475,8 +466,7 @@ pub unsafe extern "C" fn rs_sip_parse_response(
     state.parse_response(flow, stream_slice).into()
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rs_sip_parse_response_tcp(
+unsafe extern "C" fn sip_parse_response_tcp(
     flow: *const Flow, state: *mut std::os::raw::c_void, pstate: *mut std::os::raw::c_void,
     stream_slice: StreamSlice, _data: *const std::os::raw::c_void,
 ) -> AppLayerResult {
@@ -553,7 +543,7 @@ export_state_data_get!(sip_get_state_data, SIPState);
 const PARSER_NAME: &[u8] = b"sip\0";
 
 #[no_mangle]
-pub unsafe extern "C" fn rs_sip_register_parser() {
+pub unsafe extern "C" fn SCRegisterSipParser() {
     let mut parser = RustParser {
         name: PARSER_NAME.as_ptr() as *const std::os::raw::c_char,
         default_port: std::ptr::null(),
@@ -562,16 +552,16 @@ pub unsafe extern "C" fn rs_sip_register_parser() {
         probe_tc: None,
         min_depth: 0,
         max_depth: 16,
-        state_new: rs_sip_state_new,
-        state_free: rs_sip_state_free,
-        tx_free: rs_sip_state_tx_free,
-        parse_ts: rs_sip_parse_request,
-        parse_tc: rs_sip_parse_response,
-        get_tx_count: rs_sip_state_get_tx_count,
-        get_tx: rs_sip_state_get_tx,
+        state_new: sip_state_new,
+        state_free: sip_state_free,
+        tx_free: sip_state_tx_free,
+        parse_ts: sip_parse_request,
+        parse_tc: sip_parse_response,
+        get_tx_count: sip_state_get_tx_count,
+        get_tx: sip_state_get_tx,
         tx_comp_st_ts: 1,
         tx_comp_st_tc: 1,
-        tx_get_progress: rs_sip_tx_get_alstate_progress,
+        tx_get_progress: sip_tx_get_alstate_progress,
         get_eventinfo: Some(SIPEvent::get_event_info),
         get_eventinfo_byid: Some(SIPEvent::get_event_info_by_id),
         localstorage_new: None,
@@ -607,8 +597,8 @@ pub unsafe extern "C" fn rs_sip_register_parser() {
     parser.ipproto = core::IPPROTO_TCP;
     parser.probe_ts = None;
     parser.probe_tc = None;
-    parser.parse_ts = rs_sip_parse_request_tcp;
-    parser.parse_tc = rs_sip_parse_response_tcp;
+    parser.parse_ts = sip_parse_request_tcp;
+    parser.parse_tc = sip_parse_response_tcp;
 
     let ip_proto_str = CString::new("tcp").unwrap();
     if AppLayerProtoDetectConfProtoDetectionEnabled(ip_proto_str.as_ptr(), parser.name) != 0 {
index b95cb9433d194985178fa5bf29c5e8698e7561e2..06b0015a30a9f4b69c7764135f18d4193a163612 100644 (file)
@@ -1793,7 +1793,7 @@ void AppLayerParserRegisterProtocolParsers(void)
     SCRegisterKrb5Parser();
     SCRegisterDhcpParser();
     SCRegisterSnmpParser();
-    rs_sip_register_parser();
+    SCRegisterSipParser();
     rs_quic_register_parser();
     rs_websocket_register_parser();
     SCRegisterLdapTcpParser();
index e9a5387b4ea3ed8b3d3c34871646e977f40edb3a..a07e4cb40dd5a316fdcd9be643755f0d93c89549 100644 (file)
@@ -114,7 +114,7 @@ static InspectionBuffer *GetData(DetectEngineThreadCtx *det_ctx,
         const uint8_t *b = NULL;
         uint32_t b_len = 0;
 
-        if (rs_sip_tx_get_method(txv, &b, &b_len) != 1)
+        if (SCSipTxGetMethod(txv, &b, &b_len) != 1)
             return NULL;
         if (b == NULL || b_len == 0)
             return NULL;
index 202b089372f75152a489f4c611a58a24c91b51b0..1b1221a991b8539da231d6e14deeac3be8b84a9f 100644 (file)
@@ -87,7 +87,7 @@ static InspectionBuffer *GetData(DetectEngineThreadCtx *det_ctx,
         const uint8_t *b = NULL;
         uint32_t b_len = 0;
 
-        if (rs_sip_tx_get_uri(txv, &b, &b_len) != 1)
+        if (SCSipTxGetUri(txv, &b, &b_len) != 1)
             return NULL;
         if (b == NULL || b_len == 0)
             return NULL;
index d9858b8fe593498a4652fc32ec35fb7234fd7e35..a82eaffcc2a2e1c1d133869632333bacd8e08f9d 100644 (file)
@@ -916,7 +916,7 @@ void OutputRegisterRootLoggers(void)
             ALPROTO_KRB5, (EveJsonSimpleTxLogFunc)SCKrb5LogJsonResponse, NULL);
     RegisterSimpleJsonApplayerLogger(ALPROTO_QUIC, (EveJsonSimpleTxLogFunc)rs_quic_to_json, NULL);
     // ALPROTO_DHCP TODO missing
-    RegisterSimpleJsonApplayerLogger(ALPROTO_SIP, (EveJsonSimpleTxLogFunc)rs_sip_log_json, NULL);
+    RegisterSimpleJsonApplayerLogger(ALPROTO_SIP, (EveJsonSimpleTxLogFunc)SCSipLogJson, NULL);
     RegisterSimpleJsonApplayerLogger(ALPROTO_RFB, (EveJsonSimpleTxLogFunc)rs_rfb_logger_log, NULL);
     RegisterSimpleJsonApplayerLogger(ALPROTO_POP3, (EveJsonSimpleTxLogFunc)SCPop3LoggerLog, NULL);
     RegisterSimpleJsonApplayerLogger(