]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rust: add get_tx_iterator to parser registration
authorJason Ish <ish@unx.ca>
Thu, 31 May 2018 22:38:53 +0000 (16:38 -0600)
committerJason Ish <ish@unx.ca>
Fri, 15 Jun 2018 21:48:52 +0000 (15:48 -0600)
rust/src/ikev2/ikev2.rs
rust/src/krb/krb5.rs
rust/src/ntp/ntp.rs
rust/src/parser.rs

index 39941367a17658afc90570590483daa4ed57c0b2..304f3063c52fcd95cf24c2466ac38812efefe09f 100644 (file)
@@ -671,6 +671,7 @@ pub unsafe extern "C" fn rs_register_ikev2_parser() {
         get_tx_mpm_id     : None,
         set_tx_mpm_id     : None,
         get_files         : None,
+        get_tx_iterator   : None,
     };
 
     let ip_proto_str = CString::new("udp").unwrap();
index 2d0e4f51551065b52be07b78f77a7fab03d7e6a2..43a30eda659e0142618879e3b3940eafa6607fba 100644 (file)
@@ -627,6 +627,7 @@ pub unsafe extern "C" fn rs_register_krb5_parser() {
         get_tx_mpm_id     : None,
         set_tx_mpm_id     : None,
         get_files         : None,
+        get_tx_iterator   : None,
     };
     // register UDP parser
     let ip_proto_str = CString::new("udp").unwrap();
index b1b9fa752ad338506e374ac243c68d49080e24ec..78727414fddb39c8b0eab5f27c10c5218f5bd4c9 100644 (file)
@@ -394,6 +394,7 @@ pub unsafe extern "C" fn rs_register_ntp_parser() {
         get_tx_mpm_id     : None,
         set_tx_mpm_id     : None,
         get_files         : None,
+        get_tx_iterator   : None,
     };
 
     let ip_proto_str = CString::new("udp").unwrap();
index c5c689af7b74c1ef5330b1836d7753cb91e77f90..227f3fc93848824d1432503d4d61436a5627a903 100644 (file)
@@ -23,7 +23,7 @@ use core::{DetectEngineState,Flow,AppLayerEventType,AppLayerDecoderEvents,AppPro
 use filecontainer::FileContainer;
 
 use libc::{c_void,c_char,c_int};
-
+use applayer::{AppLayerGetTxIterTuple};
 
 /// Rust parser declaration
 #[repr(C)]
@@ -94,6 +94,9 @@ pub struct RustParser {
 
     /// Function to get files
     pub get_files:         Option<GetFilesFn>,
+
+    /// Function to get the TX iterator
+    pub get_tx_iterator:   Option<GetTxIteratorFn>,
 }
 
 
@@ -140,6 +143,12 @@ pub type LocalStorageFreeFn = extern "C" fn (*mut c_void);
 pub type GetTxMpmIDFn       = extern "C" fn (*mut c_void) -> u64;
 pub type SetTxMpmIDFn       = extern "C" fn (*mut c_void, u64) -> c_int;
 pub type GetFilesFn         = extern "C" fn (*mut c_void, u8) -> *mut FileContainer;
+pub type GetTxIteratorFn    = extern "C" fn (ipproto: u8, alproto: AppProto,
+                                             state: *mut c_void,
+                                             min_tx_id: u64,
+                                             max_tx_id: u64,
+                                             istate: &mut u64)
+                                             -> AppLayerGetTxIterTuple;
 
 // Defined in app-layer-register.h
 extern {