From bcf0d452c90a2a88ac7bf9f55f889ad4a9ac3b18 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Tue, 28 Jan 2020 12:42:21 +0100 Subject: [PATCH] pxar: move acl helper functions to src/tools/acl.rs They are not only needed by the pxar::sequential_decoder but also for the fuse xattr impl, so it makes more sense to have them there. Signed-off-by: Christian Ebner Signed-off-by: Wolfgang Bumiller --- src/pxar/sequential_decoder.rs | 20 ++++---------------- src/tools/acl.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/pxar/sequential_decoder.rs b/src/pxar/sequential_decoder.rs index e1620e7d..78d8f3e4 100644 --- a/src/pxar/sequential_decoder.rs +++ b/src/pxar/sequential_decoder.rs @@ -272,19 +272,19 @@ impl SequentialDecoder { acl.add_entry_full( acl::ACL_USER_OBJ, None, - mode_user_to_acl_permissions(entry.mode), + acl::mode_user_to_acl_permissions(entry.mode), )?; acl.add_entry_full( acl::ACL_OTHER, None, - mode_other_to_acl_permissions(entry.mode), + acl::mode_other_to_acl_permissions(entry.mode), )?; match &attr.acl_group_obj { Some(group_obj) => { acl.add_entry_full( acl::ACL_MASK, None, - mode_group_to_acl_permissions(entry.mode), + acl::mode_group_to_acl_permissions(entry.mode), )?; acl.add_entry_full(acl::ACL_GROUP_OBJ, None, group_obj.permissions)?; } @@ -292,7 +292,7 @@ impl SequentialDecoder { acl.add_entry_full( acl::ACL_GROUP_OBJ, None, - mode_group_to_acl_permissions(entry.mode), + acl::mode_group_to_acl_permissions(entry.mode), )?; } } @@ -1175,15 +1175,3 @@ fn nsec_to_update_timespec(mtime_nsec: u64) -> [libc::timespec; 2] { times } - -fn mode_user_to_acl_permissions(mode: u64) -> u64 { - (mode >> 6) & 7 -} - -fn mode_group_to_acl_permissions(mode: u64) -> u64 { - (mode >> 3) & 7 -} - -fn mode_other_to_acl_permissions(mode: u64) -> u64 { - mode & 7 -} diff --git a/src/tools/acl.rs b/src/tools/acl.rs index 1abbd459..596c4348 100644 --- a/src/tools/acl.rs +++ b/src/tools/acl.rs @@ -270,3 +270,18 @@ impl<'a> Iterator for &'a mut ACLEntriesIterator { None } } + +/// Helper to transform `PxarEntry`s user mode to acl permissions. +pub fn mode_user_to_acl_permissions(mode: u64) -> u64 { + (mode >> 6) & 7 +} + +/// Helper to transform `PxarEntry`s group mode to acl permissions. +pub fn mode_group_to_acl_permissions(mode: u64) -> u64 { + (mode >> 3) & 7 +} + +/// Helper to transform `PxarEntry`s other mode to acl permissions. +pub fn mode_other_to_acl_permissions(mode: u64) -> u64 { + mode & 7 +}