From: Jeff Lucovsky Date: Sat, 22 May 2021 13:03:58 +0000 (-0400) Subject: dcerpc: Rework constructs to use Self/Default X-Git-Tag: suricata-7.0.0-beta1~1609 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ef0bd580bf9182199e756d6a27eb0709b4fd39f;p=thirdparty%2Fsuricata.git dcerpc: Rework constructs to use Self/Default --- diff --git a/rust/src/dcerpc/dcerpc.rs b/rust/src/dcerpc/dcerpc.rs index d2389d38d5..233ef03aa3 100644 --- a/rust/src/dcerpc/dcerpc.rs +++ b/rust/src/dcerpc/dcerpc.rs @@ -160,7 +160,7 @@ pub fn get_req_type_for_resp(t: u8) -> u8 { } } -#[derive(Debug)] +#[derive(Default, Debug)] pub struct DCERPCTransaction { pub id: u64, // internal transaction ID pub ctxid: u16, @@ -187,31 +187,17 @@ pub struct DCERPCTransaction { } impl DCERPCTransaction { - pub fn new() -> DCERPCTransaction { - return DCERPCTransaction { - id: 0, - ctxid: 0, - opnum: 0, - first_request_seen: 0, - call_id: 0, - frag_cnt_ts: 0, - frag_cnt_tc: 0, - endianness: 0, + pub fn new() -> Self { + return Self { stub_data_buffer_ts: Vec::new(), stub_data_buffer_tc: Vec::new(), - stub_data_buffer_reset_ts: false, - stub_data_buffer_reset_tc: false, - req_done: false, - resp_done: false, - req_lost: false, - resp_lost: false, req_cmd: DCERPC_TYPE_REQUEST, resp_cmd: DCERPC_TYPE_RESPONSE, activityuuid: Vec::new(), - seqnum: 0, tx_data: AppLayerTxData::new(), de_state: None, - }; + ..Default::default() + } } pub fn free(&mut self) { @@ -253,7 +239,7 @@ pub struct DCERPCRequest { pub first_request_seen: u8, } -#[derive(Debug, Clone)] +#[derive(Default, Debug, Clone)] pub struct DCERPCUuidEntry { pub ctxid: u16, pub internal_id: u16, @@ -265,16 +251,8 @@ pub struct DCERPCUuidEntry { } impl DCERPCUuidEntry { - pub fn new() -> DCERPCUuidEntry { - return DCERPCUuidEntry { - ctxid: 0, - internal_id: 0, - result: 0, - uuid: Vec::new(), - version: 0, - versionminor: 0, - flags: 0, - }; + pub fn new() -> Self { + Default::default() } } @@ -330,7 +308,7 @@ pub struct DCERPCBindAck { pub ctxitems: Vec, } -#[derive(Debug)] +#[derive(Default, Debug)] pub struct DCERPCState { pub header: Option, pub bind: Option, @@ -357,31 +335,12 @@ pub struct DCERPCState { } impl DCERPCState { - pub fn new() -> DCERPCState { - return DCERPCState { - header: None, - bind: None, - bindack: None, - transactions: Vec::new(), - buffer_ts: Vec::new(), - buffer_tc: Vec::new(), - pad: 0, - padleft: 0, - bytes_consumed: 0, - tx_id: 0, - query_completed: false, + pub fn new() -> Self { + return Self { data_needed_for_dir: core::STREAM_TOSERVER, prev_dir: core::STREAM_TOSERVER, - prev_tx_call_id: 0, - clear_bind_cache: false, - ts_gap: false, - tc_gap: false, - ts_ssn_gap: false, - tc_ssn_gap: false, - ts_ssn_trunc: false, - tc_ssn_trunc: false, - flow: None, - }; + ..Default::default() + } } fn create_tx(&mut self, call_id: u32) -> DCERPCTransaction { diff --git a/rust/src/dcerpc/dcerpc_udp.rs b/rust/src/dcerpc/dcerpc_udp.rs index 5e6c3ca4a2..c3671aaccb 100644 --- a/rust/src/dcerpc/dcerpc_udp.rs +++ b/rust/src/dcerpc/dcerpc_udp.rs @@ -30,7 +30,7 @@ use crate::dcerpc::parser; // Constant DCERPC UDP Header length pub const DCERPC_UDP_HDR_LEN: i32 = 80; -#[derive(Debug)] +#[derive(Default, Debug)] pub struct DCERPCHdrUdp { pub rpc_vers: u8, pub pkt_type: u8, @@ -53,18 +53,15 @@ pub struct DCERPCHdrUdp { pub serial_lo: u8, } -#[derive(Debug)] +#[derive(Default, Debug)] pub struct DCERPCUDPState { pub tx_id: u64, pub transactions: Vec, } impl DCERPCUDPState { - pub fn new() -> DCERPCUDPState { - return DCERPCUDPState { - tx_id: 0, - transactions: Vec::new(), - }; + pub fn new() -> Self { + Default::default() } fn create_tx(&mut self, hdr: &DCERPCHdrUdp) -> DCERPCTransaction { diff --git a/rust/src/dcerpc/detect.rs b/rust/src/dcerpc/detect.rs index 8f1b27727f..49b3492c6c 100644 --- a/rust/src/dcerpc/detect.rs +++ b/rust/src/dcerpc/detect.rs @@ -46,8 +46,8 @@ pub struct DCEOpnumRange { } impl DCEOpnumRange { - pub fn new() -> DCEOpnumRange { - return DCEOpnumRange { + pub fn new() -> Self { + return Self { range1: DETECT_DCE_OPNUM_RANGE_UNINITIALIZED, range2: DETECT_DCE_OPNUM_RANGE_UNINITIALIZED, };