diff options
author | Stefan (metze) Metzmacher <metze@samba.org> | 2009-10-28 15:42:47 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-10-28 15:42:47 -0700 |
commit | 25f96a4058c731e302e2d45bd670e598a7e591b7 (patch) | |
tree | d90cd270a311dafa4675750ae8eb29e55877ad11 /librpc/gen_ndr/xattr.h | |
parent | c27194a7e08b51a36a3214a84dcd3d6a12c7f891 (diff) | |
download | samba-25f96a4058c731e302e2d45bd670e598a7e591b7.tar.gz samba-25f96a4058c731e302e2d45bd670e598a7e591b7.tar.bz2 samba-25f96a4058c731e302e2d45bd670e598a7e591b7.zip |
Add in Metze's new code to ndr encode the user.DOSATTRIB
blobs. Next I'll change the create timestamp and dos attribute
code to use this.
Diffstat (limited to 'librpc/gen_ndr/xattr.h')
-rw-r--r-- | librpc/gen_ndr/xattr.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/librpc/gen_ndr/xattr.h b/librpc/gen_ndr/xattr.h index 3138e6fa24..d85d21d0ba 100644 --- a/librpc/gen_ndr/xattr.h +++ b/librpc/gen_ndr/xattr.h @@ -20,6 +20,10 @@ #define XATTR_SD_HASH_SIZE ( 64 ) #define XATTR_SD_HASH_TYPE_NONE ( 0x0 ) #define XATTR_SD_HASH_TYPE_SHA256 ( 0x1 ) +struct xattr_DosInfoFFFFCompat { + uint32_t attrib; +}; + struct xattr_DosInfo1 { uint32_t attrib; uint32_t ea_size; @@ -41,16 +45,42 @@ struct xattr_DosInfo2Old { const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */ }; +/* bitmap xattr_DosInfoValidFlags */ +#define XATTR_DOSINFO_ATTRIB ( 0x00000001 ) +#define XATTR_DOSINFO_EA_SIZE ( 0x00000002 ) +#define XATTR_DOSINFO_SIZE ( 0x00000004 ) +#define XATTR_DOSINFO_ALLOC_SIZE ( 0x00000008 ) +#define XATTR_DOSINFO_CREATE_TIME ( 0x00000010 ) +#define XATTR_DOSINFO_CHANGE_TIME ( 0x00000020 ) + +struct xattr_DosInfo3 { + uint32_t valid_flags; + uint32_t attrib; + uint32_t ea_size; + uint64_t size; + uint64_t alloc_size; + NTTIME create_time; + NTTIME change_time; +}; + union xattr_DosInfo { + struct xattr_DosInfoFFFFCompat compatinfoFFFF;/* [case(0xFFFF)] */ struct xattr_DosInfo1 info1;/* [case] */ struct xattr_DosInfo2Old oldinfo2;/* [case(2)] */ -}/* [switch_type(uint16)] */; + struct xattr_DosInfo3 info3;/* [case(3)] */ +}/* [public,switch_type(uint16)] */; struct xattr_DosAttrib { uint16_t version; union xattr_DosInfo info;/* [switch_is(version)] */ }/* [public] */; +struct xattr_DOSATTRIB { + const char * attrib_hex;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ + uint16_t version; + union xattr_DosInfo info;/* [switch_is(version)] */ +}/* [noprint,nopull,public,nopush] */; + struct xattr_EA { const char * name;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] */ DATA_BLOB value; @@ -100,4 +130,12 @@ struct xattr_NTACL { union xattr_NTACL_Info info;/* [switch_is(version)] */ }/* [public] */; + +struct xattr_parse_DOSATTRIB { + struct { + struct xattr_DOSATTRIB x; + } in; + +}; + #endif /* _HEADER_xattr */ |