mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
1df3f24d95
Jeremy.
(This used to be commit 9c21756f9e
)
55 lines
1.2 KiB
Plaintext
55 lines
1.2 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/*
|
|
IDL structures for xattrs
|
|
*/
|
|
|
|
[
|
|
pointer_default(unique)
|
|
]
|
|
interface xattr
|
|
{
|
|
/* xattrs for file systems that don't have any */
|
|
|
|
typedef [public] struct {
|
|
utf8string name;
|
|
DATA_BLOB value;
|
|
} tdb_xattr;
|
|
|
|
typedef [public] struct {
|
|
uint32 num_xattrs;
|
|
tdb_xattr xattrs[num_xattrs];
|
|
} tdb_xattrs;
|
|
|
|
/* we store the NT ACL a NTACL xattr. It is versioned so we
|
|
can later add other acl attribs (such as posix acl mapping)
|
|
|
|
we put this xattr in the security namespace to ensure that
|
|
only trusted users can write to the ACL
|
|
|
|
stored in "security.NTACL"
|
|
|
|
Version 1. raw SD stored as Samba4 does it.
|
|
Version 2. raw SD + last changed timestamp so we
|
|
can discard if this doesn't match the POSIX st_ctime.
|
|
*/
|
|
|
|
const char *XATTR_NTACL_NAME = "security.NTACL";
|
|
|
|
typedef [public] struct {
|
|
security_descriptor *sd;
|
|
NTTIME last_changed;
|
|
} security_descriptor_timestamp;
|
|
|
|
typedef [switch_type(uint16)] union {
|
|
[case(1)] security_descriptor *sd;
|
|
[case(2)] security_descriptor_timestamp *sd_ts;
|
|
} xattr_NTACL_Info;
|
|
|
|
typedef [public] struct {
|
|
uint16 version;
|
|
[switch_is(version)] xattr_NTACL_Info info;
|
|
} xattr_NTACL;
|
|
|
|
}
|