summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-11-24 14:33:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:06:07 -0500
commit8ac9d36f93e21c74762af5b0a362f73ee74462ae (patch)
treee731bfdcf47a57444acb8ac38c7bcd65d892dcbb /source4
parent3fd0f21cd9babe49281205705abe5b7a8175ad74 (diff)
downloadsamba-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.idl69
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
);
}