]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: bindgen DetectHelperMultiBufferMpmRegister
authorPhilippe Antoine <pantoine@oisf.net>
Mon, 12 May 2025 18:30:31 +0000 (20:30 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 13 May 2025 18:24:05 +0000 (20:24 +0200)
Ticket: 7667

17 files changed:
rust/src/core.rs
rust/src/detect/mod.rs
rust/src/dns/detect.rs
rust/src/dns/dns.rs
rust/src/http2/detect.rs
rust/src/ike/detect.rs
rust/src/krb/detect.rs
rust/src/ldap/detect.rs
rust/src/mqtt/detect.rs
rust/src/quic/detect.rs
rust/src/sdp/detect.rs
rust/src/sip/detect.rs
rust/sys/src/sys.rs
src/detect-email.c
src/detect-engine-helper.c
src/detect-engine-helper.h
src/detect-smtp.c

index 91253326daf63a1524d6e5a3ae636c3c416a371d..c52aa375c63f7fccfefa7fe6c9a35620c2584a45 100644 (file)
@@ -28,7 +28,6 @@ use crate::flow::Flow;
 pub enum DetectEngineState {}
 pub enum AppLayerDecoderEvents {}
 pub enum GenericVar {}
-pub(crate) use suricata_sys::sys::DetectEngineThreadCtx;
 
 #[repr(C)]
 #[derive(Debug, PartialEq, Eq, Clone, Copy)]
index fefc59a8dbabdc6669d796bf22093d4522375623..60ae90a1c5a5b36710d91dbc056fc058640edabd 100644 (file)
@@ -38,7 +38,6 @@ pub mod datasets;
 use std::os::raw::{c_char, c_int, c_void};
 use std::ffi::CString;
 
-use crate::core::DetectEngineThreadCtx;
 use suricata_sys::sys::{AppProto, DetectEngineCtx, Signature};
 
 /// EnumString trait that will be implemented on enums that
@@ -178,18 +177,6 @@ extern "C" {
     pub fn SigMatchAppendSMToList(
         de: *mut DetectEngineCtx, s: *mut Signature, kwid: c_int, ctx: *const c_void, bufid: c_int,
     ) -> *mut c_void;
-    // in detect-engine-helper.h
-    pub fn DetectHelperMultiBufferMpmRegister(
-        name: *const libc::c_char, desc: *const libc::c_char, alproto: AppProto, dir: u8,
-        get_multi_data: unsafe extern "C" fn(
-            *mut DetectEngineThreadCtx,
-            *const c_void,
-            u8,
-            u32,
-            *mut *const u8,
-            *mut u32,
-        ) -> bool,
-    ) -> c_int;
 }
 #[repr(u8)]
 #[derive(Copy, Clone, Debug, PartialEq, Eq)]
index 6396fad0c4a308ce6cb3eec49ea4f1e17bb2a2be..78d576fb8f6f46e586e93387b768f881b87277b8 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 use super::dns::{DNSRcode, DNSRecordType, DNSTransaction, ALPROTO_DNS};
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::detect::uint::{
     detect_match_uint, detect_parse_uint_enum, DetectUintData, SCDetectU16Free, SCDetectU8Free,
     SCDetectU8Parse,
@@ -30,8 +30,8 @@ use crate::direction::Direction;
 use std::ffi::CStr;
 use std::os::raw::{c_int, c_void};
 use suricata_sys::sys::{
-    DetectEngineCtx, SCDetectBufferSetActiveList, SCDetectHelperMultiBufferProgressMpmRegister,
-    Signature,
+    DetectEngineCtx, DetectEngineThreadCtx, SCDetectBufferSetActiveList,
+    SCDetectHelperMultiBufferProgressMpmRegister, Signature,
 };
 
 /// Perform the DNS opcode match.
index 05adf3362051e643d434518f597b4b2c615d10c2..d40b89c4868f04d978fc7ed1db1ad3521c21c982 100644 (file)
@@ -31,7 +31,7 @@ use crate::frames::Frame;
 
 use nom7::number::streaming::be_u16;
 use nom7::{Err, IResult};
-use suricata_sys::sys::AppProto;
+use suricata_sys::sys::{AppProto, DetectEngineThreadCtx};
 
 /// DNS record types.
 /// DNS error codes.
index dc5b796583f1c3b2ef4b2188ac6026457e5165c5..d9a28f947b3efb45c9266df4901f9684e89ee71d 100644 (file)
@@ -19,7 +19,6 @@ use super::http2::{
     HTTP2Event, HTTP2Frame, HTTP2FrameTypeData, HTTP2State, HTTP2Transaction, HTTP2TransactionState,
 };
 use super::parser;
-use crate::core::DetectEngineThreadCtx;
 use crate::detect::uint::{detect_match_uint, DetectUintData};
 use crate::direction::Direction;
 use base64::{engine::general_purpose::STANDARD, Engine};
@@ -27,6 +26,7 @@ use std::ffi::CStr;
 use std::os::raw::c_void;
 use std::rc::Rc;
 use std::str::FromStr;
+use suricata_sys::sys::DetectEngineThreadCtx;
 
 fn http2_tx_has_frametype(
     tx: &HTTP2Transaction, direction: Direction, value: u8,
index 92c708646d0f38e816bfd113e746bfb0ca59c817..3a7db4c12c6cb6e1cd9f85c5a16900a48b3f11a7 100644 (file)
 // Author: Frank Honza <frank.honza@dcso.de>
 
 use super::ipsec_parser::IkeV2Transform;
-use crate::core::DetectEngineThreadCtx;
 use crate::ike::ike::*;
 use std::ffi::CStr;
 use std::os::raw::c_void;
 use std::ptr;
+use suricata_sys::sys::DetectEngineThreadCtx;
 
 #[no_mangle]
 pub extern "C" fn SCIkeStateGetExchType(tx: &IKETransaction, exch_type: *mut u8) -> u8 {
index c9528944d1f9fbf39ac228b9f2c56803c93ac983..0b68493308f96177b367f87d272b3ebadd91164c 100644 (file)
@@ -17,8 +17,8 @@
 
 // written by Pierre Chifflier  <chifflier@wzdftpd.net>
 
-use crate::core::DetectEngineThreadCtx;
 use crate::krb::krb5::{test_weak_encryption, KRB5Transaction};
+use suricata_sys::sys::DetectEngineThreadCtx;
 
 use kerberos_parser::krb5::EncryptionType;
 
index 8959500b865e99e3a195d33d7e152aa133480907..7b036988cfad5d915cd9488d6ac957fccfa0cdad 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 use super::ldap::{LdapTransaction, ALPROTO_LDAP};
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::detect::uint::{
     detect_match_uint, detect_parse_uint_enum, DetectUintData, SCDetectU32Free, SCDetectU32Parse,
     SCDetectU8Free,
@@ -24,11 +24,14 @@ use crate::detect::uint::{
 use crate::detect::{
     helper_keyword_register_sticky_buffer, DetectHelperBufferMpmRegister,
     DetectHelperBufferRegister, DetectHelperGetData, DetectHelperKeywordRegister,
-    DetectHelperMultiBufferMpmRegister, DetectSignatureSetAppProto, SCSigTableAppLiteElmt,
-    SigMatchAppendSMToList, SigTableElmtStickyBuffer,
+    DetectSignatureSetAppProto, SCSigTableAppLiteElmt, SigMatchAppendSMToList,
+    SigTableElmtStickyBuffer,
 };
 use crate::ldap::types::{LdapMessage, LdapResultCode, ProtocolOp, ProtocolOpCode};
-use suricata_sys::sys::{DetectEngineCtx, SCDetectBufferSetActiveList, Signature};
+use suricata_sys::sys::{
+    DetectEngineCtx, DetectEngineThreadCtx, SCDetectBufferSetActiveList,
+    SCDetectHelperMultiBufferMpmRegister, Signature,
+};
 
 use std::collections::VecDeque;
 use std::ffi::CStr;
@@ -700,12 +703,12 @@ pub unsafe extern "C" fn SCDetectLdapRegister() {
         setup: ldap_detect_responses_dn_setup,
     };
     let _g_ldap_responses_dn_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_LDAP_RESPONSES_DN_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_LDAP_RESPONSES_DN_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"ldap.responses.dn\0".as_ptr() as *const libc::c_char,
         b"LDAP RESPONSES DISTINGUISHED_NAME\0".as_ptr() as *const libc::c_char,
         ALPROTO_LDAP,
         STREAM_TOCLIENT,
-        ldap_tx_get_responses_dn,
+        Some(ldap_tx_get_responses_dn),
     );
     let kw = SCSigTableAppLiteElmt {
         name: b"ldap.responses.result_code\0".as_ptr() as *const libc::c_char,
@@ -730,12 +733,12 @@ pub unsafe extern "C" fn SCDetectLdapRegister() {
         setup: ldap_detect_responses_msg_setup,
     };
     let _g_ldap_responses_dn_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_LDAP_RESPONSES_MSG_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_LDAP_RESPONSES_MSG_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"ldap.responses.message\0".as_ptr() as *const libc::c_char,
         b"LDAP RESPONSES DISTINGUISHED_NAME\0".as_ptr() as *const libc::c_char,
         ALPROTO_LDAP,
         STREAM_TOCLIENT,
-        ldap_tx_get_responses_msg,
+        Some(ldap_tx_get_responses_msg),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("ldap.request.attribute_type"),
@@ -744,12 +747,12 @@ pub unsafe extern "C" fn SCDetectLdapRegister() {
         setup: ldap_detect_request_attibute_type_setup,
     };
     let _g_ldap_request_attribute_type_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_LDAP_REQUEST_ATTRIBUTE_TYPE_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_LDAP_REQUEST_ATTRIBUTE_TYPE_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"ldap.request.attribute_type\0".as_ptr() as *const libc::c_char,
         b"LDAP REQUEST ATTRIBUTE TYPE\0".as_ptr() as *const libc::c_char,
         ALPROTO_LDAP,
         STREAM_TOSERVER,
-        ldap_tx_get_req_attribute_type,
+        Some(ldap_tx_get_req_attribute_type),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("ldap.responses.attribute_type"),
@@ -758,11 +761,11 @@ pub unsafe extern "C" fn SCDetectLdapRegister() {
         setup: ldap_detect_responses_attibute_type_setup,
     };
     let _g_ldap_responses_attribute_type_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_LDAP_RESPONSES_ATTRIBUTE_TYPE_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_LDAP_RESPONSES_ATTRIBUTE_TYPE_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"ldap.responses.attribute_type\0".as_ptr() as *const libc::c_char,
         b"LDAP RESPONSES ATTRIBUTE TYPE\0".as_ptr() as *const libc::c_char,
         ALPROTO_LDAP,
         STREAM_TOCLIENT,
-        ldap_tx_get_resp_attribute_type,
+        Some(ldap_tx_get_resp_attribute_type),
     );
 }
index 9ff214bb757face401bd9a03678e726d64c8dfd5..f980d3609dafb9590fd7872bc1b6e11410828f2e 100644 (file)
@@ -17,7 +17,7 @@
 
 // written by Sascha Steinbiss <sascha@steinbiss.name>
 
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::detect::uint::{
     detect_match_uint, detect_parse_uint, detect_parse_uint_enum, DetectUintData, DetectUintMode,
     SCDetectU8Free, SCDetectU8Parse,
@@ -25,10 +25,13 @@ use crate::detect::uint::{
 use crate::detect::{
     helper_keyword_register_sticky_buffer, DetectHelperBufferMpmRegister,
     DetectHelperBufferRegister, DetectHelperGetData, DetectHelperKeywordRegister,
-    DetectHelperMultiBufferMpmRegister, DetectSignatureSetAppProto, SCSigTableAppLiteElmt,
-    SigMatchAppendSMToList, SigTableElmtStickyBuffer,
+    DetectSignatureSetAppProto, SCSigTableAppLiteElmt, SigMatchAppendSMToList,
+    SigTableElmtStickyBuffer,
+};
+use suricata_sys::sys::{
+    DetectEngineCtx, DetectEngineThreadCtx, SCDetectBufferSetActiveList,
+    SCDetectHelperMultiBufferMpmRegister, Signature,
 };
-use suricata_sys::sys::{DetectEngineCtx, SCDetectBufferSetActiveList, Signature};
 
 use nom7::branch::alt;
 use nom7::bytes::complete::{is_a, tag};
@@ -1087,12 +1090,12 @@ pub unsafe extern "C" fn SCDetectMqttRegister() {
         }
     }
     let _g_mqtt_unsub_topic_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_MQTT_UNSUB_TOPIC_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_MQTT_UNSUB_TOPIC_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         keyword_name,
         b"unsubscribe topic query\0".as_ptr() as *const libc::c_char,
         ALPROTO_MQTT,
         STREAM_TOSERVER,
-        unsub_topic_get_data,
+        Some(unsub_topic_get_data),
     );
 
     let kw = SCSigTableAppLiteElmt {
@@ -1126,12 +1129,12 @@ pub unsafe extern "C" fn SCDetectMqttRegister() {
         }
     }
     let _g_mqtt_sub_topic_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_MQTT_SUB_TOPIC_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_MQTT_SUB_TOPIC_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         keyword_name,
         b"subscribe topic query\0".as_ptr() as *const libc::c_char,
         ALPROTO_MQTT,
         STREAM_TOSERVER,
-        sub_topic_get_data,
+        Some(sub_topic_get_data),
     );
 
     let kw = SCSigTableAppLiteElmt {
index 3c2e6c78d55a309a5388623b34418f9888b0e22f..11902b71c966e19a3eebbd4aaebf80534babeaf8 100644 (file)
  * 02110-1301, USA.
  */
 
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::quic::quic::QuicTransaction;
 use std::os::raw::c_void;
 use std::ptr;
+use suricata_sys::sys::DetectEngineThreadCtx;
 
 #[no_mangle]
 pub unsafe extern "C" fn SCQuicTxGetUa(
index b52e1041662373c12a64e410cade2aa6e9b78ead..1801bff3b1c1fbb7d949d370b2cbb717771c83b5 100644 (file)
 
 // written by Giuseppe Longo <giuseppe@glongo.it>
 
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::detect::{
     helper_keyword_register_sticky_buffer, DetectHelperBufferMpmRegister, DetectHelperGetData,
-    DetectHelperMultiBufferMpmRegister, DetectSignatureSetAppProto, SigTableElmtStickyBuffer,
+    DetectSignatureSetAppProto, SigTableElmtStickyBuffer,
 };
 use crate::direction::Direction;
 use crate::sip::sip::{SIPTransaction, ALPROTO_SIP};
 use std::os::raw::{c_int, c_void};
 use std::ptr;
-use suricata_sys::sys::{DetectEngineCtx, SCDetectBufferSetActiveList, Signature};
+use suricata_sys::sys::{
+    DetectEngineCtx, DetectEngineThreadCtx, SCDetectBufferSetActiveList,
+    SCDetectHelperMultiBufferMpmRegister, Signature,
+};
 
 static mut G_SDP_ORIGIN_BUFFER_ID: c_int = 0;
 static mut G_SDP_SESSION_NAME_BUFFER_ID: c_int = 0;
@@ -875,12 +878,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_bandwidth_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_BANDWIDTH_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_BANDWIDTH_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.bandwidth\0".as_ptr() as *const libc::c_char,
         b"sdp.bandwidth\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_bandwidth_get_data,
+        Some(sip_bandwidth_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.time"),
@@ -889,12 +892,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_time_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_TIME_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_TIME_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.time\0".as_ptr() as *const libc::c_char,
         b"sdp.time\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sdp_time_get_data,
+        Some(sdp_time_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.repeat_time"),
@@ -903,12 +906,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_repeat_time_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_REPEAT_TIME_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_REPEAT_TIME_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.repeat_time\0".as_ptr() as *const libc::c_char,
         b"sdp.repeat_time\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sdp_repeat_time_get_data,
+        Some(sdp_repeat_time_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.timezone"),
@@ -945,12 +948,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_attribute_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_ATTRIBUTE_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_ATTRIBUTE_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.attribute\0".as_ptr() as *const libc::c_char,
         b"sdp.attribute\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_attribute_get_data,
+        Some(sip_attribute_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.media.media"),
@@ -961,12 +964,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_media_desc_media_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_MEDIA_DESC_MEDIA_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_MEDIA_DESC_MEDIA_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.media.media\0".as_ptr() as *const libc::c_char,
         b"sdp.media.media\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_media_desc_media_get_data,
+        Some(sip_media_desc_media_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.media.media_info"),
@@ -975,12 +978,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_media_desc_session_info_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_MEDIA_DESC_SESSION_INFO_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_MEDIA_DESC_SESSION_INFO_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.media.media_info\0".as_ptr() as *const libc::c_char,
         b"sdp.media.media_info\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_media_desc_session_info_get_data,
+        Some(sip_media_desc_session_info_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.media.connection_data"),
@@ -989,12 +992,12 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_media_desc_connection_data_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_MEDIA_DESC_CONNECTION_DATA_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_MEDIA_DESC_CONNECTION_DATA_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.media.connection_data\0".as_ptr() as *const libc::c_char,
         b"sdp.media.connection_data\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_media_desc_connection_data_get_data,
+        Some(sip_media_desc_connection_data_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sdp.media.encryption_key"),
@@ -1003,11 +1006,11 @@ pub unsafe extern "C" fn SCDetectSdpRegister() {
         setup: sdp_media_desc_encryption_key_setup,
     };
     let _ = helper_keyword_register_sticky_buffer(&kw);
-    G_SDP_MEDIA_DESC_ENCRYPTION_KEY_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SDP_MEDIA_DESC_ENCRYPTION_KEY_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sdp.media.encryption_key\0".as_ptr() as *const libc::c_char,
         b"sdp.media.encryption_key\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_media_desc_encryption_key_get_data,
+        Some(sip_media_desc_encryption_key_get_data),
     );
 }
index 7bedd9169bb19c27416d73026251c9da1c45b72b..5aa34edab76ef95b7d40be61e0ff8cb411147d97 100644 (file)
 
 // written by Giuseppe Longo <giuseppe@glongo.it>
 
-use crate::core::{DetectEngineThreadCtx, STREAM_TOCLIENT, STREAM_TOSERVER};
+use crate::core::{STREAM_TOCLIENT, STREAM_TOSERVER};
 use crate::detect::{
     helper_keyword_register_sticky_buffer, DetectHelperBufferMpmRegister, DetectHelperGetData,
-    DetectHelperMultiBufferMpmRegister, DetectSignatureSetAppProto, SigTableElmtStickyBuffer,
+    DetectSignatureSetAppProto, SigTableElmtStickyBuffer,
 };
 use crate::direction::Direction;
 use crate::sip::sip::{SIPTransaction, ALPROTO_SIP};
 use std::os::raw::{c_int, c_void};
 use std::ptr;
-use suricata_sys::sys::{DetectEngineCtx, SCDetectBufferSetActiveList, Signature};
+use suricata_sys::sys::{DetectEngineCtx, SCDetectBufferSetActiveList, Signature, SCDetectHelperMultiBufferMpmRegister, DetectEngineThreadCtx};
 
 static mut G_SIP_PROTOCOL_BUFFER_ID: c_int = 0;
 static mut G_SIP_STAT_CODE_BUFFER_ID: c_int = 0;
@@ -567,12 +567,12 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_from_hdr_setup,
     };
     let _g_sip_from_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_FROM_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_FROM_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.from\0".as_ptr() as *const libc::c_char,
         b"sip.from\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_from_hdr_get_data,
+        Some(sip_from_hdr_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sip.to"),
@@ -581,12 +581,12 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_to_hdr_setup,
     };
     let _g_sip_to_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_TO_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_TO_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.to\0".as_ptr() as *const libc::c_char,
         b"sip.to\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_to_hdr_get_data,
+        Some(sip_to_hdr_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sip.via"),
@@ -595,12 +595,12 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_via_hdr_setup,
     };
     let _g_sip_via_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_VIA_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_VIA_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.via\0".as_ptr() as *const libc::c_char,
         b"sip.via\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_via_hdr_get_data,
+        Some(sip_via_hdr_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sip.user_agent"),
@@ -609,12 +609,12 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_ua_hdr_setup,
     };
     let _g_sip_ua_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_UA_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_UA_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.ua\0".as_ptr() as *const libc::c_char,
         b"sip.ua\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_ua_hdr_get_data,
+        Some(sip_ua_hdr_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sip.content_type"),
@@ -623,12 +623,12 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_content_type_hdr_setup,
     };
     let _g_sip_content_type_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_CONTENT_TYPE_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_CONTENT_TYPE_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.content_type\0".as_ptr() as *const libc::c_char,
         b"sip.content_type\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_content_type_hdr_get_data,
+        Some(sip_content_type_hdr_get_data),
     );
     let kw = SigTableElmtStickyBuffer {
         name: String::from("sip.content_length"),
@@ -637,11 +637,11 @@ pub unsafe extern "C" fn SCDetectSipRegister() {
         setup: sip_content_length_hdr_setup,
     };
     let _g_sip_content_length_hdr_kw_id = helper_keyword_register_sticky_buffer(&kw);
-    G_SIP_CONTENT_LENGTH_HDR_BUFFER_ID = DetectHelperMultiBufferMpmRegister(
+    G_SIP_CONTENT_LENGTH_HDR_BUFFER_ID = SCDetectHelperMultiBufferMpmRegister(
         b"sip.content_length\0".as_ptr() as *const libc::c_char,
         b"sip.content_length\0".as_ptr() as *const libc::c_char,
         ALPROTO_SIP,
         STREAM_TOSERVER | STREAM_TOCLIENT,
-        sip_content_length_hdr_get_data,
+        Some(sip_content_length_hdr_get_data),
     );
 }
index c82e7e85374a14b0f9fbe18a830c21199f8a8de3..4c5361f1fff4826fdfced39fc0b871135b83b32c 100644 (file)
@@ -326,6 +326,12 @@ pub struct SCTransformTableElmt {
 extern "C" {
     pub fn SCDetectHelperNewKeywordId() -> ::std::os::raw::c_int;
 }
+extern "C" {
+    pub fn SCDetectHelperMultiBufferMpmRegister(
+        name: *const ::std::os::raw::c_char, desc: *const ::std::os::raw::c_char,
+        alproto: AppProto, direction: u8, GetData: InspectionMultiBufferGetDataPtr,
+    ) -> ::std::os::raw::c_int;
+}
 extern "C" {
     pub fn SCDetectHelperMultiBufferProgressMpmRegister(
         name: *const ::std::os::raw::c_char, desc: *const ::std::os::raw::c_char,
index ae07071b276c36c01a8090515114863efbd59ac9..9679ce2eac8db7418f9ffd8b2f009209da95f0c1 100644 (file)
@@ -401,7 +401,7 @@ void DetectEmailRegister(void)
     kw.Setup = DetectMimeEmailUrlSetup;
     kw.flags = SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
     DetectHelperKeywordRegister(&kw);
-    g_mime_email_url_buffer_id = DetectHelperMultiBufferMpmRegister(
+    g_mime_email_url_buffer_id = SCDetectHelperMultiBufferMpmRegister(
             "email.url", "MIME EMAIL URL", ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailUrlData);
 
     kw.name = "email.received";
@@ -410,6 +410,6 @@ void DetectEmailRegister(void)
     kw.Setup = DetectMimeEmailReceivedSetup;
     kw.flags = SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
     DetectHelperKeywordRegister(&kw);
-    g_mime_email_received_buffer_id = DetectHelperMultiBufferMpmRegister("email.received",
+    g_mime_email_received_buffer_id = SCDetectHelperMultiBufferMpmRegister("email.received",
             "MIME EMAIL RECEIVED", ALPROTO_SMTP, STREAM_TOSERVER, GetMimeEmailReceivedData);
 }
index 9daaa9bd47f4a2e52f1845bc772d34720ac190e1..099beb54404508ca00265555e6bb4517a5575c76 100644 (file)
@@ -81,8 +81,8 @@ int DetectHelperBufferMpmRegister(const char *name, const char *desc, AppProto a
     return DetectBufferTypeGetByName(name);
 }
 
-int SCDetectHelperMultiBufferProgressMpmRegister(const char *name, const char *desc, AppProto alproto,
-        uint8_t direction, InspectionMultiBufferGetDataPtr GetData, int progress)
+int SCDetectHelperMultiBufferProgressMpmRegister(const char *name, const char *desc,
+        AppProto alproto, uint8_t direction, InspectionMultiBufferGetDataPtr GetData, int progress)
 {
     if (direction & STREAM_TOSERVER) {
         DetectAppLayerMultiRegister(name, alproto, SIG_FLAG_TOSERVER, progress, GetData, 2);
@@ -95,7 +95,7 @@ int SCDetectHelperMultiBufferProgressMpmRegister(const char *name, const char *d
     return DetectBufferTypeGetByName(name);
 }
 
-int DetectHelperMultiBufferMpmRegister(const char *name, const char *desc, AppProto alproto,
+int SCDetectHelperMultiBufferMpmRegister(const char *name, const char *desc, AppProto alproto,
         uint8_t direction, InspectionMultiBufferGetDataPtr GetData)
 {
     return SCDetectHelperMultiBufferProgressMpmRegister(name, desc, alproto, direction, GetData, 0);
index b2b0e5cd6bae3f2e52297f719391cee2e131d7bc..93efb2212c1627f18071c9ca0222bb2a78fde47e 100644 (file)
@@ -86,10 +86,10 @@ InspectionBuffer *DetectHelperGetData(struct DetectEngineThreadCtx_ *det_ctx,
         const int list_id, SimpleGetTxBuffer GetBuf);
 int DetectHelperBufferMpmRegister(const char *name, const char *desc, AppProto alproto,
         uint8_t direction, InspectionBufferGetDataPtr GetData);
-int DetectHelperMultiBufferMpmRegister(const char *name, const char *desc, AppProto alproto,
+int SCDetectHelperMultiBufferMpmRegister(const char *name, const char *desc, AppProto alproto,
         uint8_t direction, InspectionMultiBufferGetDataPtr GetData);
-int SCDetectHelperMultiBufferProgressMpmRegister(const char *name, const char *desc, AppProto alproto,
-        uint8_t direction, InspectionMultiBufferGetDataPtr GetData, int progress);
+int SCDetectHelperMultiBufferProgressMpmRegister(const char *name, const char *desc,
+        AppProto alproto, uint8_t direction, InspectionMultiBufferGetDataPtr GetData, int progress);
 
 int SCDetectHelperTransformRegister(const SCTransformTableElmt *kw);
 
index ca85d9aa943a525a5dfc3b218d23f6e8a76d015c..23f5b3f76335e8462ff4c3ebfe4fdb9d83604c40 100644 (file)
@@ -155,6 +155,6 @@ void SCDetectSMTPRegister(void)
     kw.Setup = DetectSmtpRcptToSetup;
     kw.flags = SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
     DetectHelperKeywordRegister(&kw);
-    g_smtp_rcpt_to_buffer_id = DetectHelperMultiBufferMpmRegister(
+    g_smtp_rcpt_to_buffer_id = SCDetectHelperMultiBufferMpmRegister(
             "smtp.rcpt_to", "SMTP RCPT TO", ALPROTO_SMTP, STREAM_TOSERVER, GetSmtpRcptToData);
 }