|
|
| version 1.1.1.1, 2012/02/17 15:09:30 | version 1.1.1.2, 2016/11/01 09:54:32 |
|---|---|
| Line 2 | Line 2 |
| * Unix SMB/CIFS implementation. | * Unix SMB/CIFS implementation. |
| * Based on the Samba ACL support code. | * Based on the Samba ACL support code. |
| * Copyright (C) Jeremy Allison 2000. | * Copyright (C) Jeremy Allison 2000. |
| * Copyright (C) 2007-2008 Wayne Davison | * Copyright (C) 2007-2015 Wayne Davison |
| * | * |
| * The permission functions have been changed to get/set all bits via | * The permission functions have been changed to get/set all bits via |
| * one call. Some functions that rsync doesn't need were also removed. | * one call. Some functions that rsync doesn't need were also removed. |
| Line 80 SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_AC | Line 80 SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_AC |
| return acl_get_file( path_p, type); | return acl_get_file( path_p, type); |
| } | } |
| #if 0 | |
| SMB_ACL_T sys_acl_get_fd(int fd) | SMB_ACL_T sys_acl_get_fd(int fd) |
| { | { |
| return acl_get_fd(fd); | return acl_get_fd(fd); |
| } | } |
| #endif | |
| int sys_acl_get_brand( SMB_ACL_T the_acl, int *brand_p) | |
| { | |
| return acl_get_brand_np(the_acl, brand_p); | |
| } | |
| int sys_acl_get_brand_file( const char *path_p, int *brand_p) | |
| { | |
| int fd; | |
| acl_t acl; | |
| if ((fd = open(path_p, O_RDONLY|O_NONBLOCK)) < 0) | |
| return -1; | |
| if ((acl = acl_get_fd(fd)) == NULL) { | |
| close(fd); | |
| return -1; | |
| } | |
| close(fd); | |
| if (acl_get_brand_np(acl, brand_p) < 0) { | |
| acl_free(acl); | |
| return -1; | |
| } | |
| acl_free(acl); | |
| return 0; | |
| } | |
| #if defined(HAVE_ACL_GET_PERM_NP) | #if defined(HAVE_ACL_GET_PERM_NP) |
| #define acl_get_perm(p, b) acl_get_perm_np(p, b) | #define acl_get_perm(p, b) acl_get_perm_np(p, b) |
| #endif | #endif |
| Line 873 int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ | Line 897 int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ |
| #define INITIAL_ACL_SIZE 16 | #define INITIAL_ACL_SIZE 16 |
| #ifndef NACLENTRIES | |
| #define NACLENTRIES 0 | |
| #endif | |
| SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type) | SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type) |
| { | { |
| SMB_ACL_T acl_d; | SMB_ACL_T acl_d; |
| Line 909 SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL | Line 937 SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL |
| sys_acl_free_acl(acl_d); | sys_acl_free_acl(acl_d); |
| if ((count = acl(path_p, ACL_CNT, 0, NULL)) < 0) { | if ((count = acl(path_p, ACL_CNT, NACLENTRIES, NULL)) < 0) { |
| return NULL; | return NULL; |
| } | } |