diff options
author | Stefan Metzmacher <metze@samba.org> | 2004-11-24 14:33:40 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:06:07 -0500 |
commit | 8ac9d36f93e21c74762af5b0a362f73ee74462ae (patch) | |
tree | e731bfdcf47a57444acb8ac38c7bcd65d892dcbb /source4 | |
parent | 3fd0f21cd9babe49281205705abe5b7a8175ad74 (diff) | |
download | samba-8ac9d36f93e21c74762af5b0a362f73ee74462ae.tar.gz samba-8ac9d36f93e21c74762af5b0a362f73ee74462ae.tar.bz2 samba-8ac9d36f93e21c74762af5b0a362f73ee74462ae.zip |
r3942: decode the 'replUpToDateVector' blob
metze
(This used to be commit 42b9f0bd476f2175e856ea8f79577eb9eda905e2)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/drsblobs.idl | 69 |
1 files changed, 63 insertions, 6 deletions
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl index 52c324e197..6c998968ac 100644 --- a/source4/librpc/idl/drsblobs.idl +++ b/source4/librpc/idl/drsblobs.idl @@ -6,6 +6,11 @@ helpstring("Active Directory Replication LDAP Blobs") ] interface drsblobs { + /* + * replPropertyMetaData + * w2k uses version 1 + * w2k3 uses version 1 + */ typedef struct { uint32 attribute_id; uint32 version; @@ -13,17 +18,69 @@ interface drsblobs { GUID orginating_dsa; uint64 orginating_usn; uint64 local_usn; - } replPropertyMetaData; + } replPropertyMetaData1; typedef struct { - uint32 unknown1; /* version ? */ - uint32 unknown2; + uint32 unknown1; uint32 count; - uint32 unknown3; - replPropertyMetaData array[count]; + uint32 unknown2; + replPropertyMetaData1 array[count]; + } replPropertyMetaDataCtr1; + + typedef [nodiscriminant] union { + [case(1)] replPropertyMetaDataCtr1 ctr1; } replPropertyMetaDataCtr; + + typedef [public] struct { + uint32 version; + [switch_is(version)] replPropertyMetaDataCtr ctr; + } replPropertyMetaDataBlob; void decode_replPropertyMetaData( - [in] replPropertyMetaDataCtr ctr + [in] replPropertyMetaDataBlob blob + ); + + /* + * replUpToDateVector + * w2k uses version 1 + * w2k3 uses version 2 + */ + typedef struct { + GUID dsa; + uint64 usn; + } replUpToDateVector1; + + typedef struct { + uint32 unknown1; + uint32 count; + uint32 unknown2; + replUpToDateVector1 array[count]; + } replUpToDateVectorCtr1; + + typedef struct { + GUID dsa; + uint64 usn; + NTTIME_1sec time; + } replUpToDateVector2; + + typedef struct { + uint32 unknown1; + uint32 count; + uint32 unknown2; + replUpToDateVector2 array[count]; + } replUpToDateVectorCtr2; + + typedef [nodiscriminant] union { + [case(1)] replUpToDateVectorCtr1 ctr1; + [case(2)] replUpToDateVectorCtr2 ctr2; + } replUpToDateVectorCtr; + + typedef [public] struct { + uint32 version; + [switch_is(version)] replUpToDateVectorCtr ctr; + } replUpToDateVectorBlob; + + void decode_replUpToDateVector( + [in] replUpToDateVectorBlob blob ); } |