Implement POSIX.1e ACL functions

* Makefile.in (DLL_OFILES): Add sec_posixacl.o.
	(SUBLIBS): Add libacl.a
	(libacl.a): New rule to create libacl.a.
	* common.din: Export POSIX ACL functions as well as most libacl.a
	extensions.
	* fhandler.h (fhander_base::acl_get): New prototype.
	(fhander_base::acl_set): Ditto.
	(fhandler_disk_file::acl_get): Ditto.
	(fhandler_disk_file::acl_set): Ditto.
	* include/acl/libacl.h: New file.
	* include/cygwin/version.h: Bump API minor version.
	* include/sys/acl.h: Drop including cygwin/acl.h.  Accommodate
	throughout Cygwin.  Add POSIX ACL definitions.
	* sec_acl.cc: Include sec_posixacl.h.  Replace ILLEGAL_UID and
	ILLEGAL_GID with ACL_UNDEFINED_ID where sensible.
	(__aclcheck): New internal acl check function to be used for
	Solaris and POSIX ACLs.
	(aclcheck32): Call __aclcheck.
	(__aclcalcmask): New function to compute ACL_MASK value.
	(__aclsort): New internal acl sort function to be used for Solaris
	and POSIX ACLs.
	(aclsort32): Call __aclsort.
	(permtostr): Work directly on provided buffer.
	(__acltotext): New internal acltotext function to be used for
	Solaris and POSIX ACLs.
	(acltotext32): Call __acltotext.
	(__aclfromtext): New internal aclfromtext function to be used for
	Solaris and POSIX ACLs.
	(aclfromtext32): Call __aclfromtext.
	* sec_posixacl.cc: New file implemeting POSIX ACL functions.
	* sec_posixacl.h: New internal header.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2016-01-06 18:41:36 +01:00
parent edd7d93484
commit 9ddf063921
18 changed files with 1849 additions and 300 deletions

View File

@@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE
accept4 SIGFE
access SIGFE
acl SIGFE
acl_add_perm NOSIGFE
acl_calc_mask SIGFE
acl_check NOSIGFE
acl_clear_perms NOSIGFE
acl_cmp SIGFE
acl_copy_entry NOSIGFE
acl_copy_ext NOSIGFE
acl_copy_int NOSIGFE
acl_create_entry SIGFE
acl_delete_def_file SIGFE
acl_delete_entry NOSIGFE
acl_delete_perm NOSIGFE
acl_dup SIGFE
acl_entries NOSIGFE
acl_equiv_mode SIGFE
acl_error NOSIGFE
acl_extended_fd SIGFE
acl_extended_file SIGFE
acl_extended_file_nofollow SIGFE
acl_free SIGFE
acl_from_mode NOSIGFE
acl_from_text SIGFE
acl_get_entry NOSIGFE
acl_get_fd SIGFE
acl_get_file SIGFE
acl_get_perm NOSIGFE
acl_get_permset NOSIGFE
acl_get_qualifier SIGFE
acl_get_tag_type NOSIGFE
acl_init SIGFE
acl_set_fd SIGFE
acl_set_file SIGFE
acl_set_permset NOSIGFE
acl_set_qualifier NOSIGFE
acl_set_tag_type NOSIGFE
acl_size NOSIGFE
acl_to_any_text SIGFE
acl_to_text SIGFE
acl_valid NOSIGFE
aclcheck NOSIGFE
aclfrommode SIGFE
aclfrompbits SIGFE