From: Philippe Antoine Date: Tue, 2 Feb 2021 12:29:14 +0000 (+0100) Subject: smb: split probing function for code style X-Git-Tag: suricata-6.0.2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe50461346b34151ef693365dfb2c13a09683a4d;p=thirdparty%2Fsuricata.git smb: split probing function for code style Introduces rs_smb_probe_tcp_midstream (cherry picked from commit 9dc5258a21cecdabca26aaac108e83d85147d30b) --- diff --git a/rust/src/smb/smb.rs b/rust/src/smb/smb.rs index 70262391cc..ada497b579 100644 --- a/rust/src/smb/smb.rs +++ b/rust/src/smb/smb.rs @@ -1905,15 +1905,8 @@ pub extern "C" fn rs_smb_parse_response_tcp_gap( state.parse_tcp_data_tc_gap(input_len as u32) } -// probing parser -// return 1 if found, 0 is not found -#[no_mangle] -pub extern "C" fn rs_smb_probe_tcp(direction: u8, - input: *const u8, len: u32, - rdir: *mut u8) - -> i8 +fn rs_smb_probe_tcp_midstream(direction: u8, slice: &[u8], rdir: *mut u8) -> i8 { - let slice = build_slice!(input, len as usize); match search_smb_record(slice) { Ok((_, ref data)) => { SCLogDebug!("smb found"); @@ -1972,6 +1965,21 @@ pub extern "C" fn rs_smb_probe_tcp(direction: u8, SCLogDebug!("no dice"); }, } + return 0; +} + +// probing parser +// return 1 if found, 0 is not found +#[no_mangle] +pub extern "C" fn rs_smb_probe_tcp(flags: u8, + input: *const u8, len: u32, + rdir: *mut u8) + -> i8 +{ + let slice = build_slice!(input, len as usize); + if rs_smb_probe_tcp_midstream(flags, slice, rdir) == 1 { + return 1; + } match parse_nbss_record_partial(slice) { Ok((_, ref hdr)) => { if hdr.is_smb() {