]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: AppLayerRegisterParser out of SuricataContext
authorPhilippe Antoine <pantoine@oisf.net>
Thu, 23 Jan 2025 09:12:59 +0000 (10:12 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 23 Jan 2025 18:10:48 +0000 (19:10 +0100)
Just use a regular compile time rust export, instead of having
a runtime definition through the SuricataContext structure

rust/src/applayer.rs
rust/src/core.rs
src/rust-context.c
src/rust-context.h

index cd75d43933decabd8e34c33c7565d0373e867afa..12bc3d42bfefe0f7fbc0401f578fb2acf76f8d07 100644 (file)
@@ -23,7 +23,6 @@ use crate::direction::Direction;
 use crate::filecontainer::FileContainer;
 use crate::flow::Flow;
 use std::os::raw::{c_void,c_char,c_int};
-use crate::core::SC;
 use std::ffi::CStr;
 use crate::core::StreamingBufferConfig;
 
@@ -478,12 +477,9 @@ pub type GetFrameNameById = unsafe extern "C" fn(u8) -> *const c_char;
 extern {
     pub fn AppLayerRegisterProtocolDetection(parser: *const RustParser, enable_default: c_int) -> AppProto;
     pub fn AppLayerRegisterParserAlias(parser_name: *const c_char, alias_name: *const c_char);
+    pub fn AppLayerRegisterParser(parser: *const RustParser, alproto: AppProto) -> c_int;
 }
 
-#[allow(non_snake_case)]
-pub unsafe fn AppLayerRegisterParser(parser: *const RustParser, alproto: AppProto) -> c_int {
-    (SC.unwrap().AppLayerRegisterParser)(parser, alproto)
-}
 
 // Defined in app-layer-detect-proto.h
 /// cbindgen:ignore
index 7e1094a39e907496c4cb732d69b54f8ef1415d98..a1b74ceaf51a83838c03b4b686712175ea9eae78 100644 (file)
@@ -163,8 +163,6 @@ pub struct SuricataContext {
     pub FileAppendData: SCFileAppendDataById,
     pub FileAppendGAP: SCFileAppendGAPById,
     pub FileContainerRecycle: SCFileContainerRecycle,
-
-    pub AppLayerRegisterParser: extern fn(parser: *const crate::applayer::RustParser, alproto: AppProto) -> std::os::raw::c_int,
 }
 
 #[allow(non_snake_case)]
index e63e12ce002d4d3bc1dec5935b1d0d5724343876..1b7131a65d0e0ac2033da3780ec928ba7a6fec5d 100644 (file)
@@ -37,8 +37,6 @@ const SuricataContext suricata_context = {
     FileAppendDataById,
     FileAppendGAPById,
     FileContainerRecycle,
-
-    AppLayerRegisterParser,
 };
 
 const SuricataContext *SCGetContext(void)
index df1179e368cc762a3f14d1671fad77bcaa64e561..15495c3bea8664a4f565fe0bee0151e7ca210965 100644 (file)
@@ -56,9 +56,6 @@ typedef struct SuricataContext_ {
     int (*FileAppendGAPById)(FileContainer *, const StreamingBufferConfig *, uint32_t track_id,
             const uint8_t *data, uint32_t data_len);
     void (*FileContainerRecycle)(FileContainer *ffc, const StreamingBufferConfig *);
-
-    int (*AppLayerRegisterParser)(const struct AppLayerParser *p, AppProto alproto);
-
 } SuricataContext;
 
 extern const SuricataContext suricata_context;