Line data Source code
1 : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : #pragma once 3 : 4 : #if HAVE_ACL 5 : 6 : #include <acl/libacl.h> 7 : #include <stdbool.h> 8 : #include <sys/acl.h> 9 : 10 : #include "macro.h" 11 : 12 : int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); 13 : int calc_acl_mask_if_needed(acl_t *acl_p); 14 : int add_base_acls_if_needed(acl_t *acl_p, const char *path); 15 : int acl_search_groups(const char* path, char ***ret_groups); 16 : int parse_acl(const char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask); 17 : int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl); 18 : int add_acls_for_user(int fd, uid_t uid); 19 : 20 : /* acl_free takes multiple argument types. 21 : * Multiple cleanup functions are necessary. */ 22 2 : DEFINE_TRIVIAL_CLEANUP_FUNC(acl_t, acl_free); 23 : #define acl_free_charp acl_free 24 0 : DEFINE_TRIVIAL_CLEANUP_FUNC(char*, acl_free_charp); 25 : #define acl_free_uid_tp acl_free 26 0 : DEFINE_TRIVIAL_CLEANUP_FUNC(uid_t*, acl_free_uid_tp); 27 : #define acl_free_gid_tp acl_free 28 0 : DEFINE_TRIVIAL_CLEANUP_FUNC(gid_t*, acl_free_gid_tp); 29 : 30 : #endif