diff --git a/rust/src/nfs/log.rs b/rust/src/nfs/log.rs index 2c6c171c2e..162af82cc2 100644 --- a/rust/src/nfs/log.rs +++ b/rust/src/nfs/log.rs @@ -121,20 +121,18 @@ fn nfs_log_response( js.set_string("status", &nfs3_status_string(tx.nfs_response_status))?; - if state.nfs_version <= 3 { - if tx.procedure == NFSPROC3_READ { - js.open_object("read")?; - nfs_file_object(tx, js)?; - js.close()?; - } else if tx.procedure == NFSPROC3_WRITE { - js.open_object("write")?; - nfs_file_object(tx, js)?; - js.close()?; - } else if tx.procedure == NFSPROC3_RENAME { - js.open_object("rename")?; - nfs_rename_object(tx, js)?; - js.close()?; - } + if nfs_is_read(state.nfs_version, tx.procedure) { + js.open_object("read")?; + nfs_file_object(tx, js)?; + js.close()?; + } else if nfs_is_write(state.nfs_version, tx.procedure) { + js.open_object("write")?; + nfs_file_object(tx, js)?; + js.close()?; + } else if nfs_is_rename(state.nfs_version, tx.procedure) { + js.open_object("rename")?; + nfs_rename_object(tx, js)?; + js.close()?; } Ok(()) } diff --git a/rust/src/nfs/types.rs b/rust/src/nfs/types.rs index 0b09881c0c..70084199aa 100644 --- a/rust/src/nfs/types.rs +++ b/rust/src/nfs/types.rs @@ -321,3 +321,33 @@ pub enum NfsProc4 { } pub const NFS4_OK: u32 = 0; + +pub(super) fn nfs_is_read(version: u16, proc: u32) -> bool { + match version + { + 2 => proc == (NfsProc2::READ as u32), + 3 => proc == (NfsProc3::READ as u32), + 4 => proc == (NfsProc4::READ as u32), + _ => false, + } +} + +pub(super) fn nfs_is_write(version: u16, proc: u32) -> bool { + match version + { + 2 => proc == (NfsProc2::WRITE as u32), + 3 => proc == (NfsProc3::WRITE as u32), + 4 => proc == (NfsProc4::WRITE as u32), + _ => false, + } +} + +pub(super) fn nfs_is_rename(version: u16, proc: u32) -> bool { + match version + { + 2 => proc == (NfsProc2::RENAME as u32), + 3 => proc == (NfsProc3::RENAME as u32), + 4 => proc == (NfsProc4::RENAME as u32), + _ => false, + } +} \ No newline at end of file