]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
applayer/template: support AppLayerTxData
authorVictor Julien <victor@inliniac.net>
Sun, 7 Jun 2020 17:55:35 +0000 (19:55 +0200)
committerVictor Julien <victor@inliniac.net>
Sat, 11 Jul 2020 06:37:40 +0000 (08:37 +0200)
rust/src/applayertemplate/template.rs

index f59e474816ba7514e1d28794d918fc9bf4568333..89317277f2abddf5ebac186818bc7776f2c75c45 100644 (file)
@@ -31,9 +31,9 @@ pub struct TemplateTransaction {
     pub request: Option<String>,
     pub response: Option<String>,
 
-    logged: LoggerFlags,
     de_state: Option<*mut core::DetectEngineState>,
     events: *mut core::AppLayerDecoderEvents,
+    tx_data: AppLayerTxData,
 }
 
 impl TemplateTransaction {
@@ -42,9 +42,9 @@ impl TemplateTransaction {
             tx_id: 0,
             request: None,
             response: None,
-            logged: LoggerFlags::new(),
             de_state: None,
             events: std::ptr::null_mut(),
+            tx_data: AppLayerTxData::new(),
         }
     }
 
@@ -387,25 +387,6 @@ pub extern "C" fn rs_template_tx_get_alstate_progress(
     return 0;
 }
 
-#[no_mangle]
-pub extern "C" fn rs_template_tx_get_logged(
-    _state: *mut std::os::raw::c_void,
-    tx: *mut std::os::raw::c_void,
-) -> u32 {
-    let tx = cast_pointer!(tx, TemplateTransaction);
-    return tx.logged.get();
-}
-
-#[no_mangle]
-pub extern "C" fn rs_template_tx_set_logged(
-    _state: *mut std::os::raw::c_void,
-    tx: *mut std::os::raw::c_void,
-    logged: u32,
-) {
-    let tx = cast_pointer!(tx, TemplateTransaction);
-    tx.logged.set(logged);
-}
-
 #[no_mangle]
 pub extern "C" fn rs_template_state_get_events(
     tx: *mut std::os::raw::c_void
@@ -501,6 +482,8 @@ pub extern "C" fn rs_template_get_response_buffer(
     return 0;
 }
 
+export_tx_data_get!(rs_template_get_tx_data, TemplateTransaction);
+
 // Parser name as a C style string.
 const PARSER_NAME: &'static [u8] = b"template-rust\0";
 
@@ -524,8 +507,8 @@ pub unsafe extern "C" fn rs_template_register_parser() {
         get_tx: rs_template_state_get_tx,
         tx_get_comp_st: rs_template_state_progress_completion_status,
         tx_get_progress: rs_template_tx_get_alstate_progress,
-        get_tx_logged: Some(rs_template_tx_get_logged),
-        set_tx_logged: Some(rs_template_tx_set_logged),
+        get_tx_logged: None,
+        set_tx_logged: None,
         get_de_state: rs_template_tx_get_detect_state,
         set_de_state: rs_template_tx_set_detect_state,
         get_events: Some(rs_template_state_get_events),
@@ -537,7 +520,7 @@ pub unsafe extern "C" fn rs_template_register_parser() {
         get_tx_iterator: Some(rs_template_state_get_tx_iterator),
         get_tx_detect_flags: None,
         set_tx_detect_flags: None,
-        get_tx_data: None,
+        get_tx_data: Some(rs_template_get_tx_data),
         apply_tx_config: None,
     };