From 57cc992e0f9a5d729ecf3c8effc862542ef7a84e Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Mon, 22 Oct 2007 18:14:57 +0200 Subject: Implement vfs_ea_tdb This is an option for file systems that do not implement xattrs: in lockdir/eas.tdb an array of xatts per inode is stored. It can not solve the problem that xattrs might reappear if a posix-level process deletes a file and happens to re-create it under the same name. On file systems with birthtime we might have a chance to detect this, but not with standard posix. A future version might put relief on file systems that do have xattrs but where these are severely limited in size/speed/whatever: We can put a simple marker as a native xattr, but the xattrs proper are stored in the tdb. Volker (This used to be commit 2036b4c5ad677b8a477b34b0f076febab0abff5e) --- source3/librpc/gen_ndr/xattr.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 source3/librpc/gen_ndr/xattr.h (limited to 'source3/librpc/gen_ndr/xattr.h') diff --git a/source3/librpc/gen_ndr/xattr.h b/source3/librpc/gen_ndr/xattr.h new file mode 100644 index 0000000000..ee30376be8 --- /dev/null +++ b/source3/librpc/gen_ndr/xattr.h @@ -0,0 +1,18 @@ +/* header auto-generated by pidl */ + +#include + +#ifndef _HEADER_xattr +#define _HEADER_xattr + +struct tdb_xattr { + const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */ + DATA_BLOB value; +}/* [public] */; + +struct tdb_xattrs { + uint32_t num_xattrs; + struct tdb_xattr *xattrs; +}/* [public] */; + +#endif /* _HEADER_xattr */ -- cgit From 0a0e18eeecc4d4e091c58109a8ddd9b3f28fa5cd Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 9 Jul 2008 16:54:38 -0700 Subject: Add in the IDL to store a NT Security descriptor in a blob. Use the same format as S4, but a new version as we'll need to store the timestamp to check for validity against the POSIX st_ctime. Jeremy. (This used to be commit 5c4ce1dac3769bfe533a4ea778c916d117603603) --- source3/librpc/gen_ndr/xattr.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source3/librpc/gen_ndr/xattr.h') diff --git a/source3/librpc/gen_ndr/xattr.h b/source3/librpc/gen_ndr/xattr.h index ee30376be8..af1b633acb 100644 --- a/source3/librpc/gen_ndr/xattr.h +++ b/source3/librpc/gen_ndr/xattr.h @@ -15,4 +15,19 @@ struct tdb_xattrs { struct tdb_xattr *xattrs; }/* [public] */; +struct security_descriptor_timestamp { + struct security_descriptor *sd;/* [unique] */ + NTTIME last_changed; +}/* [public] */; + +union xattr_NTACL_Info { + struct security_descriptor *sd;/* [unique,case] */ + struct security_descriptor_timestamp *sd_ts;/* [unique,case(2)] */ +}/* [switch_type(uint16)] */; + +struct xattr_NTACL { + uint16_t version; + union xattr_NTACL_Info info;/* [switch_is(version)] */ +}/* [public] */; + #endif /* _HEADER_xattr */ -- cgit From 1df3f24d95db599a4a0fc1c46574555c18505f00 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 10 Jul 2008 17:19:01 -0700 Subject: Add XATTR_NTACL_NAME constant. Jeremy. (This used to be commit 9c21756f9e841fd996590619b5eedc659f849626) --- source3/librpc/gen_ndr/xattr.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source3/librpc/gen_ndr/xattr.h') diff --git a/source3/librpc/gen_ndr/xattr.h b/source3/librpc/gen_ndr/xattr.h index af1b633acb..b0b9db99c1 100644 --- a/source3/librpc/gen_ndr/xattr.h +++ b/source3/librpc/gen_ndr/xattr.h @@ -5,6 +5,7 @@ #ifndef _HEADER_xattr #define _HEADER_xattr +#define XATTR_NTACL_NAME ( "security.NTACL" ) struct tdb_xattr { const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */ DATA_BLOB value; -- cgit