//! RDP application layer
-use crate::applayer::*;
+use crate::applayer::{self, *};
use crate::core::{self, AppProto, DetectEngineState, Flow, ALPROTO_UNKNOWN, IPPROTO_TCP};
use crate::rdp::parser::*;
use nom;
tx_data: AppLayerTxData,
}
+impl Transaction for RdpTransaction {
+ fn id(&self) -> u64 {
+ self.id
+ }
+}
+
impl RdpTransaction {
fn new(id: u64, item: RdpTransactionItem) -> Self {
Self {
bypass_parsing: bool,
}
+impl State<RdpTransaction> for RdpState {
+ fn get_transactions(&self) -> &[RdpTransaction] {
+ &self.transactions
+ }
+}
+
impl RdpState {
fn new() -> Self {
Self {
localstorage_new: None,
localstorage_free: None,
get_files: None,
- get_tx_iterator: None,
+ get_tx_iterator: Some(applayer::state_get_tx_iterator::<RdpState, RdpTransaction>),
get_tx_data: rs_rdp_get_tx_data,
apply_tx_config: None,
flags: APP_LAYER_PARSER_OPT_UNIDIR_TXS,