]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
snmp: add TX orientation
authorEric Leblond <el@stamus-networks.com>
Mon, 23 Jan 2023 19:02:00 +0000 (20:02 +0100)
committerVictor Julien <vjulien@oisf.net>
Sat, 1 Apr 2023 05:07:33 +0000 (07:07 +0200)
Set no inspection in the opposite side of the transaction.

Ticket: #5799

rust/src/snmp/snmp.rs

index 37283994b0ea9202f12fe5a939f81bc54f7efbac..ad461311c84277917d132badbd39bbeeb9b13b07 100644 (file)
@@ -142,8 +142,8 @@ impl<'a> SNMPState<'a> {
         tx.info = Some(pdu_info);
     }
 
-    fn handle_snmp_v12(&mut self, msg: SnmpMessage<'a>, _direction: u8) -> i32 {
-        let mut tx = self.new_tx();
+    fn handle_snmp_v12(&mut self, msg: SnmpMessage<'a>, direction: u8) -> i32 {
+        let mut tx = self.new_tx(direction);
         // in the message, version is encoded as 0 (version 1) or 1 (version 2)
         if self.version != msg.version + 1 {
             SCLogDebug!("SNMP version mismatch: expected {}, received {}", self.version, msg.version+1);
@@ -155,8 +155,8 @@ impl<'a> SNMPState<'a> {
         0
     }
 
-    fn handle_snmp_v3(&mut self, msg: SnmpV3Message<'a>, _direction: u8) -> i32 {
-        let mut tx = self.new_tx();
+    fn handle_snmp_v3(&mut self, msg: SnmpV3Message<'a>, direction: u8) -> i32 {
+        let mut tx = self.new_tx(direction);
         if self.version != msg.version {
             SCLogDebug!("SNMP version mismatch: expected {}, received {}", self.version, msg.version);
             self.set_event_tx(&mut tx, SNMPEvent::VersionMismatch);
@@ -209,9 +209,11 @@ impl<'a> SNMPState<'a> {
         self.transactions.clear();
     }
 
-    fn new_tx(&mut self) -> SNMPTransaction<'a> {
+    fn new_tx(&mut self, direction: u8) -> SNMPTransaction<'a> {
         self.tx_id += 1;
-        SNMPTransaction::new(self.version, self.tx_id)
+        let mut tx = SNMPTransaction::new(self.version, self.tx_id);
+        tx.tx_data.set_inspect_direction(direction);
+        tx
     }
 
     fn get_tx_by_id(&mut self, tx_id: u64) -> Option<&SNMPTransaction> {