summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/nfs4acl.idl42
-rw-r--r--librpc/idl/wscript_build2
-rw-r--r--librpc/wscript_build5
3 files changed, 48 insertions, 1 deletions
diff --git a/librpc/idl/nfs4acl.idl b/librpc/idl/nfs4acl.idl
new file mode 100644
index 0000000000..3d4379ad5e
--- /dev/null
+++ b/librpc/idl/nfs4acl.idl
@@ -0,0 +1,42 @@
+#include "idl_types.h"
+
+/*
+ NFS4 ACL format on disk
+ see http://www.suse.de/~agruen/nfs4acl/
+*/
+
+import "misc.idl", "security.idl";
+
+[ uuid("18763978-8625-abc3-54ca-9892bacdf321"),
+ version(1.0),
+ pointer_default(unique)
+]
+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
+ );
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 2dbf1a3f83..854a2e2e96 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -32,6 +32,6 @@ bld.SAMBA_PIDL_LIST('PIDL',
output_dir='../gen_ndr')
bld.SAMBA_PIDL_LIST('PIDL',
- 'dnsp.idl',
+ 'dnsp.idl nfs4acl.idl',
options='--header --ndr-parser --client --python',
output_dir='../gen_ndr')
diff --git a/librpc/wscript_build b/librpc/wscript_build
index 8a4c169d5a..cc5d617275 100644
--- a/librpc/wscript_build
+++ b/librpc/wscript_build
@@ -217,6 +217,11 @@ bld.SAMBA_SUBSYSTEM('NDR_DNSP',
public_deps='ndr'
)
+bld.SAMBA_SUBSYSTEM('NDR_NFS4ACL',
+ source='gen_ndr/ndr_nfs4acl.c',
+ public_deps='ndr NDR_SECURITY'
+ )
+
bld.SAMBA_SUBSYSTEM('NDR_NTPRINTING',
source='gen_ndr/ndr_ntprinting.c ndr/ndr_ntprinting.c',
public_deps='ndr'