Branch data 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 [ + - ]: 8 : 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