Add XATTR_NTACL_NAME constant.
[Samba/gebeck_regimport.git] / source3 / librpc / idl / xattr.idl
blob23af2df40446b508f7a30351ce1b1d42a64c6fe0
1 #include "idl_types.h"
3 /*
4 IDL structures for xattrs
5 */
8 pointer_default(unique)
10 interface xattr
12 /* xattrs for file systems that don't have any */
14 typedef [public] struct {
15 utf8string name;
16 DATA_BLOB value;
17 } tdb_xattr;
19 typedef [public] struct {
20 uint32 num_xattrs;
21 tdb_xattr xattrs[num_xattrs];
22 } tdb_xattrs;
24 /* we store the NT ACL a NTACL xattr. It is versioned so we
25 can later add other acl attribs (such as posix acl mapping)
27 we put this xattr in the security namespace to ensure that
28 only trusted users can write to the ACL
30 stored in "security.NTACL"
32 Version 1. raw SD stored as Samba4 does it.
33 Version 2. raw SD + last changed timestamp so we
34 can discard if this doesn't match the POSIX st_ctime.
37 const char *XATTR_NTACL_NAME = "security.NTACL";
39 typedef [public] struct {
40 security_descriptor *sd;
41 NTTIME last_changed;
42 } security_descriptor_timestamp;
44 typedef [switch_type(uint16)] union {
45 [case(1)] security_descriptor *sd;
46 [case(2)] security_descriptor_timestamp *sd_ts;
47 } xattr_NTACL_Info;
49 typedef [public] struct {
50 uint16 version;
51 [switch_is(version)] xattr_NTACL_Info info;
52 } xattr_NTACL;