};
use crate::applayer::{self, *};
use crate::core::{AppProto, Flow, ALPROTO_FAILED, ALPROTO_UNKNOWN, IPPROTO_UDP};
+use std::collections::VecDeque;
use std::ffi::CString;
use tls_parser::TlsExtensionType;
keys: Option<QuicKeys>,
hello_tc: bool,
hello_ts: bool,
- transactions: Vec<QuicTransaction>,
+ transactions: VecDeque<QuicTransaction>,
}
impl Default for QuicState {
keys: None,
hello_tc: false,
hello_ts: false,
- transactions: Vec::new(),
+ transactions: VecDeque::new(),
}
}
}
let mut tx = QuicTransaction::new(header, data, sni, ua, extb, ja3, client);
self.max_tx_id += 1;
tx.tx_id = self.max_tx_id;
- self.transactions.push(tx);
+ self.transactions.push_back(tx);
}
fn tx_iterator(
self.max_tx_id += 1;
tx.tx_id = self.max_tx_id;
tx.tx_data.set_event(event as u8);
- self.transactions.push(tx);
+ self.transactions.push_back(tx);
}
fn parse(&mut self, input: &[u8], to_server: bool) -> bool {