summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2006-10-21 09:46:12 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:21:32 -0500
commit515c92a759ad30059f65d3e65dc9f642dc03852a (patch)
treedb338cf843e1beb2b7899103041f3dc2e52533b8 /source4/librpc
parent9044f4aa905882485bf2b5c72d9836bdaa14c37a (diff)
downloadsamba-515c92a759ad30059f65d3e65dc9f642dc03852a.tar.gz
samba-515c92a759ad30059f65d3e65dc9f642dc03852a.tar.bz2
samba-515c92a759ad30059f65d3e65dc9f642dc03852a.zip
r19441: work in progress support for NFS4 ACLs in Samba4 on Linux. Still work
to do, particularly with getting the detailed bit mappings right, and on sid mapping. Does not pass RAW-ACLS yet (This used to be commit b92553481b534d0ef5277dbfe8c0d64a03f819eb)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk9
-rw-r--r--source4/librpc/idl/nfs4acl.idl41
2 files changed, 49 insertions, 1 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index b1c45e47da..cf58e40c26 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -144,6 +144,13 @@ OBJ_FILES = gen_ndr/ndr_samr.o
PUBLIC_HEADERS = gen_ndr/samr.h
PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_LSA NDR_SECURITY
+[LIBRARY::NDR_NFS4ACL]
+VERSION = 0.0.1
+SO_VERSION = 0
+OBJ_FILES = gen_ndr/ndr_nfs4acl.o
+PUBLIC_HEADERS = gen_ndr/nfs4acl.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_MISC NDR_SECURITY
+
[LIBRARY::NDR_SPOOLSS]
VERSION = 0.0.1
SO_VERSION = 0
@@ -370,7 +377,7 @@ PUBLIC_DEPENDENCIES = \
NDR_NETLOGON NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL \
NDR_ROT NDR_DRSBLOBS NDR_SVCCTL NDR_NBT NDR_WINSREPL NDR_SECURITY \
NDR_INITSHUTDOWN NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_DCOM NDR_OPENDB \
- NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI
+ NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_NFS4ACL
[LIBRARY::RPC_NDR_ROT]
VERSION = 0.0.1
diff --git a/source4/librpc/idl/nfs4acl.idl b/source4/librpc/idl/nfs4acl.idl
new file mode 100644
index 0000000000..dc136150f4
--- /dev/null
+++ b/source4/librpc/idl/nfs4acl.idl
@@ -0,0 +1,41 @@
+#include "idl_types.h"
+
+/*
+ NFS4 ACL format on disk
+ see http://www.suse.de/~agruen/nfs4acl/
+*/
+
+[ uuid("18763978-8625-abc3-54ca-9892bacdf321"),
+ version(1.0),
+ pointer_default(unique),
+ depends(misc,security)
+]
+interface nfs4acl
+{
+ const char *NFS4ACL_XATTR_NAME = "system.nfs4acl";
+
+ /* these structures use the same bit values and other constants as
+ in security.idl */
+ typedef [flag(NDR_BIG_ENDIAN)] struct {
+ uint16 e_type;
+ uint16 e_flags;
+ uint32 e_mask;
+ uint32 e_id;
+ utf8string e_who;
+ [flag(NDR_ALIGN4)] DATA_BLOB _pad;
+ } nfs4ace;
+
+ typedef [public,flag(NDR_BIG_ENDIAN)] struct {
+ uint8 a_version;
+ uint8 a_flags;
+ uint16 a_count;
+ uint32 a_owner_mask;
+ uint32 a_group_mask;
+ uint32 a_other_mask;
+ nfs4ace ace[a_count];
+ } nfs4acl;
+
+ NTSTATUS nfs4acl_test(
+ [in] nfs4acl acl
+ );
+}