From: Victor Julien Date: Sat, 21 Jul 2018 07:46:42 +0000 (+0200) Subject: nfs: request parser cleanup X-Git-Tag: suricata-4.1.0-rc2~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c09766b33223690e67d7083be77d27ea663621e;p=thirdparty%2Fsuricata.git nfs: request parser cleanup --- diff --git a/rust/src/nfs/nfs.rs b/rust/src/nfs/nfs.rs index 56092f4d6c..19c1f7317d 100644 --- a/rust/src/nfs/nfs.rs +++ b/rust/src/nfs/nfs.rs @@ -505,9 +505,24 @@ impl NFSState { SCLogDebug!("REQUEST {} procedure {} ({}) blob size {}", r.hdr.xid, r.procedure, self.requestmap.len(), r.prog_data.len()); - if r.progver == 4 { - return self.process_request_record_v4(r); + match r.progver { + 4 => { + self.process_request_record_v4(r) + }, + 3 => { + self.process_request_record_v3(r) + }, + 2 => { + self.process_request_record_v2(r) + }, + _ => { 1 }, } + } + + /// complete NFS3 request record + fn process_request_record_v3<'b>(&mut self, r: &RpcPacket<'b>) -> u32 { + SCLogDebug!("REQUEST {} procedure {} ({}) blob size {}", + r.hdr.xid, r.procedure, self.requestmap.len(), r.prog_data.len()); let mut xidmap = NFSRequestXidMap::new(r.progver, r.procedure, 0); let mut aux_file_name = Vec::new();