From: Jason Ish Date: Fri, 2 May 2025 23:01:10 +0000 (-0600) Subject: rust/quic: replace rs_ naming with SC X-Git-Tag: suricata-8.0.0-rc1~362 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F13152%2Fhead;p=thirdparty%2Fsuricata.git rust/quic: replace rs_ naming with SC --- diff --git a/rust/src/quic/detect.rs b/rust/src/quic/detect.rs index df1ab0ddd5..f8be705340 100644 --- a/rust/src/quic/detect.rs +++ b/rust/src/quic/detect.rs @@ -21,7 +21,7 @@ use std::os::raw::c_void; use std::ptr; #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_ua( +pub unsafe extern "C" fn SCQuicTxGetUa( tx: &QuicTransaction, buffer: *mut *const u8, buffer_len: *mut u32, ) -> u8 { if let Some(ua) = &tx.ua { @@ -36,7 +36,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_ua( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_sni( +pub unsafe extern "C" fn SCQuicTxGetSni( tx: &QuicTransaction, buffer: *mut *const u8, buffer_len: *mut u32, ) -> u8 { if let Some(sni) = &tx.sni { @@ -51,7 +51,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_sni( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_ja3( +pub unsafe extern "C" fn SCQuicTxGetJa3( tx: &QuicTransaction, buffer: *mut *const u8, buffer_len: *mut u32, ) -> u8 { if let Some(ja3) = &tx.ja3 { @@ -66,7 +66,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_ja3( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_ja4( +pub unsafe extern "C" fn SCQuicTxGetJa4( tx: &QuicTransaction, buffer: *mut *const u8, buffer_len: *mut u32, ) -> u8 { if let Some(ja4) = &tx.ja4 { @@ -81,7 +81,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_ja4( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_version( +pub unsafe extern "C" fn SCQuicTxGetVersion( tx: &QuicTransaction, buffer: *mut *const u8, buffer_len: *mut u32, ) -> u8 { if tx.header.flags.is_long { @@ -97,7 +97,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_version( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_cyu_hash( +pub unsafe extern "C" fn SCQuicTxGetCyuHash( _de: *mut DetectEngineThreadCtx, tx: *const c_void, _flags: u8, i: u32, buffer: *mut *const u8, buffer_len: *mut u32, ) -> bool { @@ -120,7 +120,7 @@ pub unsafe extern "C" fn rs_quic_tx_get_cyu_hash( } #[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_cyu_string( +pub unsafe extern "C" fn SCQuicTxGetCyuString( _de: *mut DetectEngineThreadCtx, tx: *const c_void, _flags: u8, i: u32, buffer: *mut *const u8, buffer_len: *mut u32, ) -> bool { diff --git a/rust/src/quic/logger.rs b/rust/src/quic/logger.rs index a8362c55d9..1ba2afbb66 100644 --- a/rust/src/quic/logger.rs +++ b/rust/src/quic/logger.rs @@ -154,7 +154,7 @@ fn log_quic(tx: &QuicTransaction, js: &mut JsonBuilder) -> Result<(), JsonError> } #[no_mangle] -pub unsafe extern "C" fn rs_quic_to_json( +pub unsafe extern "C" fn SCQuicLogJson( tx: *mut std::os::raw::c_void, js: &mut JsonBuilder, ) -> bool { let tx = cast_pointer!(tx, QuicTransaction); diff --git a/rust/src/quic/quic.rs b/rust/src/quic/quic.rs index 7c1f25efd0..886c14e752 100644 --- a/rust/src/quic/quic.rs +++ b/rust/src/quic/quic.rs @@ -426,8 +426,7 @@ impl QuicState { } } -#[no_mangle] -pub extern "C" fn rs_quic_state_new( +extern "C" fn quic_state_new( _orig_state: *mut std::os::raw::c_void, _orig_proto: AppProto, ) -> *mut std::os::raw::c_void { let state = QuicState::new(); @@ -435,20 +434,17 @@ pub extern "C" fn rs_quic_state_new( return Box::into_raw(boxed) as *mut _; } -#[no_mangle] -pub extern "C" fn rs_quic_state_free(state: *mut std::os::raw::c_void) { +extern "C" fn quic_state_free(state: *mut std::os::raw::c_void) { // Just unbox... std::mem::drop(unsafe { Box::from_raw(state as *mut QuicState) }); } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) { +unsafe extern "C" fn quic_state_tx_free(state: *mut std::os::raw::c_void, tx_id: u64) { let state = cast_pointer!(state, QuicState); state.free_tx(tx_id); } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_probing_parser( +unsafe extern "C" fn quic_probing_parser( _flow: *const Flow, _direction: u8, input: *const u8, input_len: u32, _rdir: *mut u8, ) -> AppProto { if input.is_null() { @@ -463,8 +459,7 @@ pub unsafe extern "C" fn rs_quic_probing_parser( } } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_parse_tc( +unsafe extern "C" fn quic_parse_tc( _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 { @@ -478,8 +473,7 @@ pub unsafe extern "C" fn rs_quic_parse_tc( } } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_parse_ts( +unsafe extern "C" fn quic_parse_ts( _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 { @@ -493,8 +487,7 @@ pub unsafe extern "C" fn rs_quic_parse_ts( } } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_state_get_tx( +unsafe extern "C" fn quic_state_get_tx( state: *mut std::os::raw::c_void, tx_id: u64, ) -> *mut std::os::raw::c_void { let state = cast_pointer!(state, QuicState); @@ -508,28 +501,19 @@ pub unsafe extern "C" fn rs_quic_state_get_tx( } } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 { +unsafe extern "C" fn quic_state_get_tx_count(state: *mut std::os::raw::c_void) -> u64 { let state = cast_pointer!(state, QuicState); return state.max_tx_id; } -#[no_mangle] -pub extern "C" fn rs_quic_state_progress_completion_status(_direction: u8) -> std::os::raw::c_int { - // This parser uses 1 to signal transaction completion status. - return 1; -} - -#[no_mangle] -pub unsafe extern "C" fn rs_quic_tx_get_alstate_progress( +unsafe extern "C" fn quic_tx_get_alstate_progress( tx: *mut std::os::raw::c_void, _direction: u8, ) -> std::os::raw::c_int { let _tx = cast_pointer!(tx, QuicTransaction); return 1; } -#[no_mangle] -pub unsafe extern "C" fn rs_quic_state_get_tx_iterator( +unsafe extern "C" fn quic_state_get_tx_iterator( _ipproto: u8, _alproto: AppProto, state: *mut std::os::raw::c_void, min_tx_id: u64, _max_tx_id: u64, istate: &mut u64, ) -> applayer::AppLayerGetTxIterTuple { @@ -553,32 +537,32 @@ export_state_data_get!(quic_get_state_data, QuicState); const PARSER_NAME: &[u8] = b"quic\0"; #[no_mangle] -pub unsafe extern "C" fn rs_quic_register_parser() { +pub unsafe extern "C" fn SCRegisterQuicParser() { let default_port = CString::new("[443,80]").unwrap(); let parser = RustParser { name: PARSER_NAME.as_ptr() as *const std::os::raw::c_char, default_port: default_port.as_ptr(), ipproto: IPPROTO_UDP, - probe_ts: Some(rs_quic_probing_parser), - probe_tc: Some(rs_quic_probing_parser), + probe_ts: Some(quic_probing_parser), + probe_tc: Some(quic_probing_parser), min_depth: 0, max_depth: 16, - state_new: rs_quic_state_new, - state_free: rs_quic_state_free, - tx_free: rs_quic_state_tx_free, - parse_ts: rs_quic_parse_ts, - parse_tc: rs_quic_parse_tc, - get_tx_count: rs_quic_state_get_tx_count, - get_tx: rs_quic_state_get_tx, + state_new: quic_state_new, + state_free: quic_state_free, + tx_free: quic_state_tx_free, + parse_ts: quic_parse_ts, + parse_tc: quic_parse_tc, + get_tx_count: quic_state_get_tx_count, + get_tx: quic_state_get_tx, tx_comp_st_ts: 1, tx_comp_st_tc: 1, - tx_get_progress: rs_quic_tx_get_alstate_progress, + tx_get_progress: quic_tx_get_alstate_progress, get_eventinfo: Some(QuicEvent::get_event_info), get_eventinfo_byid: Some(QuicEvent::get_event_info_by_id), localstorage_new: None, localstorage_free: None, get_tx_files: None, - get_tx_iterator: Some(rs_quic_state_get_tx_iterator), + get_tx_iterator: Some(quic_state_get_tx_iterator), get_tx_data: quic_get_tx_data, get_state_data: quic_get_state_data, apply_tx_config: None, diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index 06b0015a30..4fbf4e2d99 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -1794,7 +1794,7 @@ void AppLayerParserRegisterProtocolParsers(void) SCRegisterDhcpParser(); SCRegisterSnmpParser(); SCRegisterSipParser(); - rs_quic_register_parser(); + SCRegisterQuicParser(); rs_websocket_register_parser(); SCRegisterLdapTcpParser(); SCRegisterLdapUdpParser(); diff --git a/src/detect-ja4-hash.c b/src/detect-ja4-hash.c index 8b090a7fba..b1f79906bd 100644 --- a/src/detect-ja4-hash.c +++ b/src/detect-ja4-hash.c @@ -170,7 +170,7 @@ static InspectionBuffer *Ja4DetectGetHash(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_ja4(txv, &b, &b_len) != 1) + if (SCQuicTxGetJa4(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL; diff --git a/src/detect-quic-cyu-hash.c b/src/detect-quic-cyu-hash.c index b8ead1c1e0..86dcb4531f 100644 --- a/src/detect-quic-cyu-hash.c +++ b/src/detect-quic-cyu-hash.c @@ -69,7 +69,7 @@ void DetectQuicCyuHashRegister(void) #endif DetectAppLayerMultiRegister( - BUFFER_NAME, ALPROTO_QUIC, SIG_FLAG_TOSERVER, 1, rs_quic_tx_get_cyu_hash, 2); + BUFFER_NAME, ALPROTO_QUIC, SIG_FLAG_TOSERVER, 1, SCQuicTxGetCyuHash, 2); DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC); diff --git a/src/detect-quic-cyu-string.c b/src/detect-quic-cyu-string.c index b18cce998d..c9154988d1 100644 --- a/src/detect-quic-cyu-string.c +++ b/src/detect-quic-cyu-string.c @@ -67,7 +67,7 @@ void DetectQuicCyuStringRegister(void) #endif DetectAppLayerMultiRegister( - BUFFER_NAME, ALPROTO_QUIC, SIG_FLAG_TOSERVER, 1, rs_quic_tx_get_cyu_string, 2); + BUFFER_NAME, ALPROTO_QUIC, SIG_FLAG_TOSERVER, 1, SCQuicTxGetCyuString, 2); DetectBufferTypeSetDescriptionByName(BUFFER_NAME, BUFFER_DESC); diff --git a/src/detect-quic-sni.c b/src/detect-quic-sni.c index 8a88c32b6b..8bd8dc3b94 100644 --- a/src/detect-quic-sni.c +++ b/src/detect-quic-sni.c @@ -55,7 +55,7 @@ static InspectionBuffer *GetSniData(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_sni(txv, &b, &b_len) != 1) + if (SCQuicTxGetSni(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL; diff --git a/src/detect-quic-ua.c b/src/detect-quic-ua.c index dc215f980c..868b5ec382 100644 --- a/src/detect-quic-ua.c +++ b/src/detect-quic-ua.c @@ -55,7 +55,7 @@ static InspectionBuffer *GetUaData(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_ua(txv, &b, &b_len) != 1) + if (SCQuicTxGetUa(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL; diff --git a/src/detect-quic-version.c b/src/detect-quic-version.c index 395bbdb6e4..983db9dbdc 100644 --- a/src/detect-quic-version.c +++ b/src/detect-quic-version.c @@ -55,7 +55,7 @@ static InspectionBuffer *GetVersionData(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_version(txv, &b, &b_len) != 1) + if (SCQuicTxGetVersion(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL; diff --git a/src/output.c b/src/output.c index cabc70e3c9..276534b428 100644 --- a/src/output.c +++ b/src/output.c @@ -914,7 +914,7 @@ void OutputRegisterRootLoggers(void) // ALPROTO_IKE special: uses state RegisterSimpleJsonApplayerLogger( ALPROTO_KRB5, (EveJsonSimpleTxLogFunc)SCKrb5LogJsonResponse, NULL); - RegisterSimpleJsonApplayerLogger(ALPROTO_QUIC, (EveJsonSimpleTxLogFunc)rs_quic_to_json, NULL); + RegisterSimpleJsonApplayerLogger(ALPROTO_QUIC, (EveJsonSimpleTxLogFunc)SCQuicLogJson, NULL); // ALPROTO_DHCP TODO missing RegisterSimpleJsonApplayerLogger(ALPROTO_SIP, (EveJsonSimpleTxLogFunc)SCSipLogJson, NULL); RegisterSimpleJsonApplayerLogger(ALPROTO_RFB, (EveJsonSimpleTxLogFunc)rs_rfb_logger_log, NULL); diff --git a/src/util-ja3.c b/src/util-ja3.c index af2cbbb2b3..4fe4302060 100644 --- a/src/util-ja3.c +++ b/src/util-ja3.c @@ -267,7 +267,7 @@ InspectionBuffer *Ja3DetectGetHash(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_ja3(txv, &b, &b_len) != 1) + if (SCQuicTxGetJa3(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL; @@ -292,7 +292,7 @@ InspectionBuffer *Ja3DetectGetString(DetectEngineThreadCtx *det_ctx, uint32_t b_len = 0; const uint8_t *b = NULL; - if (rs_quic_tx_get_ja3(txv, &b, &b_len) != 1) + if (SCQuicTxGetJa3(txv, &b, &b_len) != 1) return NULL; if (b == NULL || b_len == 0) return NULL;