ntp: add TX orientation

Set no inspection in the opposite side of the transaction.

Ticket: #5799
pull/8660/head
Eric Leblond 3 years ago committed by Victor Julien
parent c64e4526cd
commit 44482a68b0

@ -20,7 +20,7 @@
extern crate ntp_parser; extern crate ntp_parser;
use self::ntp_parser::*; use self::ntp_parser::*;
use crate::core; use crate::core;
use crate::core::{AppProto,Flow,ALPROTO_UNKNOWN,ALPROTO_FAILED}; use crate::core::{AppProto,Flow,ALPROTO_UNKNOWN,ALPROTO_FAILED,Direction};
use crate::applayer::{self, *}; use crate::applayer::{self, *};
use std; use std;
use std::ffi::CString; use std::ffi::CString;
@ -95,7 +95,7 @@ impl NTPState {
NtpPacket::V4(pkt) => (pkt.mode, pkt.ref_id), NtpPacket::V4(pkt) => (pkt.mode, pkt.ref_id),
}; };
if mode == NtpMode::SymmetricActive || mode == NtpMode::Client { if mode == NtpMode::SymmetricActive || mode == NtpMode::Client {
let mut tx = self.new_tx(); let mut tx = self.new_tx(_direction);
// use the reference id as identifier // use the reference id as identifier
tx.xid = ref_id; tx.xid = ref_id;
self.transactions.push(tx); self.transactions.push(tx);
@ -121,9 +121,15 @@ impl NTPState {
self.transactions.clear(); self.transactions.clear();
} }
fn new_tx(&mut self) -> NTPTransaction { fn new_tx(&mut self, _direction: u8) -> NTPTransaction {
self.tx_id += 1; self.tx_id += 1;
NTPTransaction::new(self.tx_id) let mut tx = NTPTransaction::new(self.tx_id);
if _direction == 0 {
tx.tx_data.set_inspect_direction(Direction::ToServer);
} else {
tx.tx_data.set_inspect_direction(Direction::ToClient);
}
tx
} }
pub fn get_tx_by_id(&mut self, tx_id: u64) -> Option<&NTPTransaction> { pub fn get_tx_by_id(&mut self, tx_id: u64) -> Option<&NTPTransaction> {

Loading…
Cancel
Save