summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-11-05 11:31:35 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:31 -0500
commit12f4a44cf549b4ccd729494c242a5ec186d2d670 (patch)
tree28045ce9c687afe92430fd0caa71243136c39e14 /source4/librpc/idl
parent2b4e716f7aec49469b2b523c86762c8d4bacb4d1 (diff)
downloadsamba-12f4a44cf549b4ccd729494c242a5ec186d2d670.tar.gz
samba-12f4a44cf549b4ccd729494c242a5ec186d2d670.tar.bz2
samba-12f4a44cf549b4ccd729494c242a5ec186d2d670.zip
r3549: added support for DOS extended attribute lists (name/value pairs)
stored in posix xattrs (This used to be commit bad6a88371264cffce2bf5d6ce904b7b357081de)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/idl_types.h6
-rw-r--r--source4/librpc/idl/xattr.idl20
2 files changed, 24 insertions, 2 deletions
diff --git a/source4/librpc/idl/idl_types.h b/source4/librpc/idl/idl_types.h
index 860c9d7260..54943ce78c 100644
--- a/source4/librpc/idl/idl_types.h
+++ b/source4/librpc/idl/idl_types.h
@@ -8,6 +8,7 @@
#define STR_FIXLEN32 LIBNDR_FLAG_STR_FIXLEN32
#define STR_CONFORMANT LIBNDR_FLAG_STR_CONFORMANT
#define STR_CHARLEN LIBNDR_FLAG_STR_CHARLEN
+#define STR_UTF8 LIBNDR_FLAG_STR_UTF8
/*
a UCS2 string prefixed with [size] [offset] [length], all 32 bits
@@ -64,6 +65,11 @@
*/
#define astring [flag(STR_ASCII|STR_NULLTERM)] string
+/*
+ a null terminated UTF8 string
+*/
+#define utf8string [flag(STR_UTF8|STR_NULLTERM)] string
+
#define NDR_NOALIGN LIBNDR_FLAG_NOALIGN
#define NDR_REMAINING LIBNDR_FLAG_REMAINING
diff --git a/source4/librpc/idl/xattr.idl b/source4/librpc/idl/xattr.idl
index aa5c0a0d6a..c2487b705c 100644
--- a/source4/librpc/idl/xattr.idl
+++ b/source4/librpc/idl/xattr.idl
@@ -13,8 +13,9 @@ interface xattr
const string XATTR_DOSATTRIB_NAME = "user.DosAttrib";
const string XATTR_DOSATTRIB_ESTIMATED_SIZE = 64;
- /* by using a union we can cope with new version of
- this structure more easily */
+ /* we store basic dos attributes in a DosAttrib xattr. By
+ using a union we can cope with new version of this
+ structure more easily */
typedef struct {
uint32 attrib;
uint32 ea_size;
@@ -32,4 +33,19 @@ interface xattr
uint16 version;
[switch_is(version)] xattr_DosInfo info;
} xattr_DosAttrib;
+
+
+ /* we store DOS style extended attributes in a DosEAs xattr */
+ const string XATTR_DOSEAS_NAME = "user.DosEAs";
+ const string XATTR_DOSEAS_ESTIMATED_SIZE = 100;
+
+ typedef struct {
+ utf8string name;
+ DATA_BLOB value;
+ } xattr_EA;
+
+ typedef [public] struct {
+ uint16 num_eas;
+ [size_is(num_eas)] xattr_EA *eas;
+ } xattr_DosEAs;
}