LCOV - code coverage report
Current view: top level - source3/modules - nfs4acl_xattr_util.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 16 18 88.9 %
Date: 2024-04-21 15:09:00 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (C) Ralph Boehme 2018
       3             :  *
       4             :  * This program is free software; you can redistribute it and/or modify
       5             :  * it under the terms of the GNU General Public License as published by
       6             :  * the Free Software Foundation; either version 3 of the License, or
       7             :  * (at your option) any later version.
       8             :  *
       9             :  * This program is distributed in the hope that it will be useful,
      10             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      11             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12             :  * GNU General Public License for more details.
      13             :  *
      14             :  * You should have received a copy of the GNU General Public License
      15             :  * along with this program; if not, see <http://www.gnu.org/licenses/>.
      16             :  *
      17             :  */
      18             : 
      19             : #include "includes.h"
      20             : #include "smbd/proto.h"
      21             : #include "libcli/security/security_descriptor.h"
      22             : 
      23             : #ifdef HAVE_RPC_XDR_H
      24             : /* <rpc/xdr.h> uses TRUE and FALSE */
      25             : #ifdef TRUE
      26             : #undef TRUE
      27             : #endif
      28             : 
      29             : #ifdef FALSE
      30             : #undef FALSE
      31             : #endif
      32             : 
      33             : #include "nfs4_acls.h"
      34             : #include "nfs41acl.h"
      35             : #include "nfs4acl_xattr_util.h"
      36             : 
      37             : #undef DBGC_CLASS
      38             : #define DBGC_CLASS DBGC_VFS
      39             : 
      40        1428 : unsigned smb4acl_to_nfs4acl_flags(uint16_t smb4acl_flags)
      41             : {
      42        1428 :         unsigned nfs4acl_flags = 0;
      43             : 
      44        1428 :         if (smb4acl_flags & SEC_DESC_DACL_AUTO_INHERITED) {
      45         228 :                 nfs4acl_flags |= ACL4_AUTO_INHERIT;
      46             :         }
      47        1428 :         if (smb4acl_flags & SEC_DESC_DACL_PROTECTED) {
      48         476 :                 nfs4acl_flags |= ACL4_PROTECTED;
      49             :         }
      50        1428 :         if (smb4acl_flags & SEC_DESC_DACL_DEFAULTED) {
      51           0 :                 nfs4acl_flags |= ACL4_DEFAULTED;
      52             :         }
      53             : 
      54        1428 :         return nfs4acl_flags;
      55             : }
      56             : 
      57        2504 : uint16_t nfs4acl_to_smb4acl_flags(unsigned nfsacl41_flags)
      58             : {
      59        2504 :         uint16_t smb4acl_flags = SEC_DESC_SELF_RELATIVE;
      60             : 
      61        2504 :         if (nfsacl41_flags & ACL4_AUTO_INHERIT) {
      62         296 :                 smb4acl_flags |= SEC_DESC_DACL_AUTO_INHERITED;
      63             :         }
      64        2504 :         if (nfsacl41_flags & ACL4_PROTECTED) {
      65         588 :                 smb4acl_flags |= SEC_DESC_DACL_PROTECTED;
      66             :         }
      67        2504 :         if (nfsacl41_flags & ACL4_DEFAULTED) {
      68           0 :                 smb4acl_flags |= SEC_DESC_DACL_DEFAULTED;
      69             :         }
      70             : 
      71        2504 :         return smb4acl_flags;
      72             : }
      73             : #endif /* HAVE_RPC_XDR_H */

Generated by: LCOV version 1.14