From bfd8bded8ea8544683b4cc754c7e0fc8ab824776 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 13 Jul 2004 18:05:02 +0000 Subject: r1481: add idl file and torture test dummies for DRSUapi (the Active Directory Replication Protocol) I'll try to fill the idl file as part of a study project together with some other students... metze (This used to be commit 3fc9abcad712c4cc5c9879df0acaa5a19a3d8718) --- source4/librpc/idl/drsuapi.idl | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 source4/librpc/idl/drsuapi.idl (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl new file mode 100644 index 0000000000..a139c60726 --- /dev/null +++ b/source4/librpc/idl/drsuapi.idl @@ -0,0 +1,117 @@ +#include "idl_types.h" + +[ + uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), + version(4.0), + endpoints(drsuapi,TCP-0), + pointer_default(unique) +] +interface drsuapi +{ + /*****************/ + /* Function 0x00 */ + void DRSUAPI_BIND( + /* [in] 8-60 bytes are possible + * but I saw 56 bytes + */ + [in] uint8 blob[56], + /* [out] 60 bytes */ + [out] uint8 blob[60] + ); + + /*****************/ + /* Function 0x01 */ + void DRSUAPI_UNBIND(); + + /*****************/ + /* Function 0x02 */ + void DRSUAPI_REPLICA_SYNC(); + + /*****************/ + /* Function 0x03 */ + void DRSUAPI_GET_NC_CHANGES(); + + /*****************/ + /* Function 0x04 */ + void DRSUAPI_UPDATE_REFS(); + + /*****************/ + /* Function 0x05 */ + void DRSUAPI_REPLICA_ADD(); + + /*****************/ + /* Function 0x06 */ + void DRSUAPI_REPLICA_DEL(); + + /*****************/ + /* Function 0x07 */ + void DRSUAPI_REPLICA_MODIFY(); + + /*****************/ + /* Function 0x08 */ + void DRSUAPI_VERIFY_NAMES(); + + /*****************/ + /* Function 0x09 */ + void DRSUAPI_GET_MEMBERSHIPS(); + + /*****************/ + /* Function 0x0a */ + void DRSUAPI_INTER_DOMAIN_MOVE(); + + /*****************/ + /* Function 0x0b */ + void DRSUAPI_GET_NT4_CHANGELOG(); + + /*****************/ + /* Function 0x0c */ + void DRSUAPI_CRACKNAMES(); + + /*****************/ + /* Function 0x0d */ + void DRSUAPI_WRITE_SPN(); + + /*****************/ + /* Function 0x0e */ + void DRSUAPI_REMOVE_DS_SERVER(); + + /*****************/ + /* Function 0x0f */ + void DRSUAPI_REMOVE_DS_DOMAIN(); + + /*****************/ + /* Function 0x10 */ + void DRSUAPI_DOMAIN_CONTROLLER_INFO(); + + /*****************/ + /* Function 0x11 */ + void DRSUAPI_ADD_ENTRY(); + + /*****************/ + /* Function 0x12 */ + void DRSUAPI_EXECUTE_KCC(); + + /*****************/ + /* Function 0x13 */ + void DRSUAPI_GET_REPL_INFO(); + + /*****************/ + /* Function 0x14 */ + void DRSUAPI_ADD_SID_HISTORY(); + + /*****************/ + /* Function 0x15 */ + void DRSUAPI_GET_MEMBERSHIPS2(); + + /*****************/ + /* Function 0x16 */ + void DRSUAPI_REPLICA_VERIFY_OBJECTS(); + + /*****************/ + /* Function 0x17 */ + void DRSUAPI_GET_OBJECT_EXISTENCE(); + + /*****************/ + /* Function 0x18 */ + void DRSUAPI_QUERY_SITES_BY_COST(); +} -- cgit From 3a296195b3f5cdf61e9abce3676786166a1a9cfd Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 4 Aug 2004 09:30:24 +0000 Subject: r1648: the endpoints for the DRSUAPI pipe are lsass,protected_storage not drsuapi:-) metze (This used to be commit a60ce66a01ff7528778dfded43d2a6e893acc5e2) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a139c60726..c5bab3b8e2 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -3,7 +3,7 @@ [ uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), version(4.0), - endpoints(drsuapi,TCP-0), + endpoints(lsass,protected_storage,TCP-0), pointer_default(unique) ] interface drsuapi -- cgit From bd30f32d4e487c4a6bf168214052baab7c21361e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 17 Aug 2004 09:09:01 +0000 Subject: r1846: add helpstring metze (This used to be commit b1c8611d730c8fd3927576faaa4b8fed8ad5b1fe) --- source4/librpc/idl/drsuapi.idl | 1 + 1 file changed, 1 insertion(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c5bab3b8e2..2ced72398f 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -4,6 +4,7 @@ uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), version(4.0), endpoints(lsass,protected_storage,TCP-0), + helpstring("Active Directory Replication"), pointer_default(unique) ] interface drsuapi -- cgit From df2ed66bb0e592010b3b68734c508690c3f393ea Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 17 Sep 2004 10:44:28 +0000 Subject: r2382: considerably improved the Bind and Unbind IDL and test code. We can now do these two calls successfully against w2k3. note that you must use ncacn_ip_tcp, and must enable dcerpc sealing, otherwise w2k3 refuses the first DRSUAPI call. (This used to be commit 7d3e34742277f264e41739721dbf08036eebb598) --- source4/librpc/idl/drsuapi.idl | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 2ced72398f..93a7caa48c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -11,18 +11,24 @@ interface drsuapi { /*****************/ /* Function 0x00 */ - void DRSUAPI_BIND( - /* [in] 8-60 bytes are possible - * but I saw 56 bytes - */ - [in] uint8 blob[56], - /* [out] 60 bytes */ - [out] uint8 blob[60] + + typedef [flag(NDR_PAHEX)] struct { + uint32 length; + [size_is(length)] uint8 data[]; + } drsuapi_BindInfo; + + NTSTATUS drsuapi_Bind( + [in] GUID *server_guid, + [in] uint32 unknown, + [out] drsuapi_BindInfo *info, + [out,ref] policy_handle *handle ); /*****************/ /* Function 0x01 */ - void DRSUAPI_UNBIND(); + NTSTATUS drsuapi_Unbind( + [in,out,ref] policy_handle *handle + ); /*****************/ /* Function 0x02 */ -- cgit From 594082233fda1e0fa82edaddd6584087d73b26c8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sun, 10 Oct 2004 01:30:54 +0000 Subject: r2888: - add 'Ds' prefix to Bind and Unbind call on drsuapi - rename handle -> bind_handle - change function types to NTSTATUS metze (This used to be commit de73676342be8dbf39df8d3fe68817932ee71ccb) --- source4/librpc/idl/drsuapi.idl | 54 +++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 93a7caa48c..74ed5ed1e8 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -17,108 +17,108 @@ interface drsuapi [size_is(length)] uint8 data[]; } drsuapi_BindInfo; - NTSTATUS drsuapi_Bind( + NTSTATUS drsuapi_DsBind( [in] GUID *server_guid, [in] uint32 unknown, [out] drsuapi_BindInfo *info, - [out,ref] policy_handle *handle + [out,ref] policy_handle *bind_handle ); /*****************/ /* Function 0x01 */ - NTSTATUS drsuapi_Unbind( - [in,out,ref] policy_handle *handle + NTSTATUS drsuapi_DsUnbind( + [in,out,ref] policy_handle *bind_handle ); /*****************/ /* Function 0x02 */ - void DRSUAPI_REPLICA_SYNC(); + NTSTATUS DRSUAPI_REPLICA_SYNC(); /*****************/ /* Function 0x03 */ - void DRSUAPI_GET_NC_CHANGES(); + NTSTATUS DRSUAPI_GET_NC_CHANGES(); /*****************/ /* Function 0x04 */ - void DRSUAPI_UPDATE_REFS(); + NTSTATUS DRSUAPI_UPDATE_REFS(); /*****************/ /* Function 0x05 */ - void DRSUAPI_REPLICA_ADD(); + NTSTATUS DRSUAPI_REPLICA_ADD(); /*****************/ /* Function 0x06 */ - void DRSUAPI_REPLICA_DEL(); + NTSTATUS DRSUAPI_REPLICA_DEL(); /*****************/ /* Function 0x07 */ - void DRSUAPI_REPLICA_MODIFY(); + NTSTATUS DRSUAPI_REPLICA_MODIFY(); /*****************/ /* Function 0x08 */ - void DRSUAPI_VERIFY_NAMES(); + NTSTATUS DRSUAPI_VERIFY_NAMES(); /*****************/ /* Function 0x09 */ - void DRSUAPI_GET_MEMBERSHIPS(); + NTSTATUS DRSUAPI_GET_MEMBERSHIPS(); /*****************/ /* Function 0x0a */ - void DRSUAPI_INTER_DOMAIN_MOVE(); + NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(); /*****************/ /* Function 0x0b */ - void DRSUAPI_GET_NT4_CHANGELOG(); + NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(); /*****************/ /* Function 0x0c */ - void DRSUAPI_CRACKNAMES(); + NTSTATUS DRSUAPI_CRACKNAMES(); /*****************/ /* Function 0x0d */ - void DRSUAPI_WRITE_SPN(); + NTSTATUS DRSUAPI_WRITE_SPN(); /*****************/ /* Function 0x0e */ - void DRSUAPI_REMOVE_DS_SERVER(); + NTSTATUS DRSUAPI_REMOVE_DS_SERVER(); /*****************/ /* Function 0x0f */ - void DRSUAPI_REMOVE_DS_DOMAIN(); + NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(); /*****************/ /* Function 0x10 */ - void DRSUAPI_DOMAIN_CONTROLLER_INFO(); + NTSTATUS DRSUAPI_DOMAIN_CONTROLLER_INFO(); /*****************/ /* Function 0x11 */ - void DRSUAPI_ADD_ENTRY(); + NTSTATUS DRSUAPI_ADD_ENTRY(); /*****************/ /* Function 0x12 */ - void DRSUAPI_EXECUTE_KCC(); + NTSTATUS DRSUAPI_EXECUTE_KCC(); /*****************/ /* Function 0x13 */ - void DRSUAPI_GET_REPL_INFO(); + NTSTATUS DRSUAPI_GET_REPL_INFO(); /*****************/ /* Function 0x14 */ - void DRSUAPI_ADD_SID_HISTORY(); + NTSTATUS DRSUAPI_ADD_SID_HISTORY(); /*****************/ /* Function 0x15 */ - void DRSUAPI_GET_MEMBERSHIPS2(); + NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(); /*****************/ /* Function 0x16 */ - void DRSUAPI_REPLICA_VERIFY_OBJECTS(); + NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(); /*****************/ /* Function 0x17 */ - void DRSUAPI_GET_OBJECT_EXISTENCE(); + NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(); /*****************/ /* Function 0x18 */ - void DRSUAPI_QUERY_SITES_BY_COST(); + NTSTATUS DRSUAPI_QUERY_SITES_BY_COST(); } -- cgit From 78e29c0491a36285ed1c09a684a9fc516aec4beb Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 13 Oct 2004 14:25:44 +0000 Subject: r2952: add idl and torture test for DsCrackNames (I need to find out what the fields mean but it works) metze (This used to be commit eff51fc623f2e7b57e7e53eb81760684815db2f4) --- source4/librpc/idl/drsuapi.idl | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 74ed5ed1e8..fc9aee6b7f 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -71,8 +71,46 @@ interface drsuapi NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(); /*****************/ - /* Function 0x0c */ - NTSTATUS DRSUAPI_CRACKNAMES(); + /* Function 0x0c */ + typedef struct { + unistr *str; + } drsuapi_DsCrackNamesInInfo1Names; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + uint32 unknown4; + uint32 unknown5; + [range(1,10000)] uint32 count; + [size_is(count)] drsuapi_DsCrackNamesInInfo1Names *names; + } drsuapi_DsCrackNamesInInfo1; + + typedef union { + [case(1)] drsuapi_DsCrackNamesInInfo1 info1; + } drsuapi_DsCrackNamesInInfo; + + typedef struct { + uint32 unknown1; + unistr *name1; + unistr *name2; + } drsuapi_DsCrackNamesOutInfo1Names; + + typedef struct { + uint32 count; + [size_is(count)] drsuapi_DsCrackNamesOutInfo1Names *names; + } drsuapi_DsCrackNamesOutInfo1; + + typedef union { + [case(1)] drsuapi_DsCrackNamesOutInfo1 *info1; + } drsuapi_DsCrackNamesOutInfo; + + NTSTATUS drsuapi_DsCrackNames( + [in,ref] policy_handle *bind_handle, + [in, out] uint32 level, + [in,switch_is(level)] drsuapi_DsCrackNamesInInfo in, + [out,switch_is(level)] drsuapi_DsCrackNamesOutInfo out + ); /*****************/ /* Function 0x0d */ -- cgit From 64344b88d17fa92275f564f972566c4e600e7501 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Oct 2004 09:56:04 +0000 Subject: r2970: - give somefields names and typdef enums for the possible values - do more crackname tests in the torture test - move server code for cracknames to a different file metze (This used to be commit 18050ea6037b3c0c7cfe975eb9c872368b9e3328) --- source4/librpc/idl/drsuapi.idl | 73 ++++++++++++++++++++++++++++++------------ 1 file changed, 53 insertions(+), 20 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index fc9aee6b7f..d49f3d294a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -72,44 +72,77 @@ interface drsuapi /*****************/ /* Function 0x0c */ + typedef enum { + DRSUAPI_DS_NAME_STATUS_OK = 0, + DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR = 1, + DRSUAPI_DS_NAME_STATUS_NOT_FOUND = 2, + DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE = 3, + DRSUAPI_DS_NAME_STATUS_NO_MAPPING = 4, + DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY = 5, + DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING = 6, + DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL = 7 + } drsuapi_DsNameStatus; + + typedef enum { + DRSUAPI_DS_NAME_FLAG_NO_FLAGS = 0x0, + DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1, + DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC = 0x2, + DRSUAPI_DS_NAME_FLAG_GCVERIFY = 0x4, + DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL = 0x8 + } drsuapi_DsNameFlags; + + typedef enum { + DRSUAPI_DS_NAME_FORMAT_UKNOWN = 0, + DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 1, + DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 2, + DRSUAPI_DS_NAME_FORMAT_DISPLAY = 3, + DRSUAPI_DS_NAME_FORMAT_GUID = 6, + DRSUAPI_DS_NAME_FORMAT_CANONICAL = 7, + DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL = 8, + DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX = 9, + DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL = 10, + DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY = 11, + DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN = 12 + } drsuapi_DsNameFormat; + typedef struct { unistr *str; - } drsuapi_DsCrackNamesInInfo1Names; + } drsuapi_DsNameString; typedef struct { - uint32 unknown1; - uint32 unknown2; - uint32 unknown3; - uint32 unknown4; - uint32 unknown5; + uint32 unknown1; /* 0x000004e4 */ + uint32 unknown2; /* 0x00000407 */ + uint32 format_flags; + uint32 format_offered; + uint32 format_desired; [range(1,10000)] uint32 count; - [size_is(count)] drsuapi_DsCrackNamesInInfo1Names *names; - } drsuapi_DsCrackNamesInInfo1; + [size_is(count)] drsuapi_DsNameString *names; + } drsuapi_DsNameRequest1; typedef union { - [case(1)] drsuapi_DsCrackNamesInInfo1 info1; - } drsuapi_DsCrackNamesInInfo; + [case(1)] drsuapi_DsNameRequest1 req1; + } drsuapi_DsNameRequest; typedef struct { - uint32 unknown1; - unistr *name1; - unistr *name2; - } drsuapi_DsCrackNamesOutInfo1Names; + uint32 status; + unistr *dns_domain_name; + unistr *result_name; + } drsuapi_DsNameInfo1; typedef struct { uint32 count; - [size_is(count)] drsuapi_DsCrackNamesOutInfo1Names *names; - } drsuapi_DsCrackNamesOutInfo1; + [size_is(count)] drsuapi_DsNameInfo1 *array; + } drsuapi_DsNameCtr1; typedef union { - [case(1)] drsuapi_DsCrackNamesOutInfo1 *info1; - } drsuapi_DsCrackNamesOutInfo; + [case(1)] drsuapi_DsNameCtr1 *ctr1; + } drsuapi_DsNameCtr; NTSTATUS drsuapi_DsCrackNames( [in,ref] policy_handle *bind_handle, [in, out] uint32 level, - [in,switch_is(level)] drsuapi_DsCrackNamesInInfo in, - [out,switch_is(level)] drsuapi_DsCrackNamesOutInfo out + [in,switch_is(level)] drsuapi_DsNameRequest req, + [out,switch_is(level)] drsuapi_DsNameCtr ctr ); /*****************/ -- cgit From 20ed511c1b126d7e5a578001a24b68eefe356bac Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Oct 2004 10:16:22 +0000 Subject: r2971: fix DsBind idl metze (This used to be commit 9e50b3214b9de84811640296c19d6068936dfd54) --- source4/librpc/idl/drsuapi.idl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index d49f3d294a..b950290d51 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -13,14 +13,13 @@ interface drsuapi /* Function 0x00 */ typedef [flag(NDR_PAHEX)] struct { - uint32 length; + [range(1,10000)] uint32 length; [size_is(length)] uint8 data[]; } drsuapi_BindInfo; NTSTATUS drsuapi_DsBind( [in] GUID *server_guid, - [in] uint32 unknown, - [out] drsuapi_BindInfo *info, + [in,out] drsuapi_BindInfo *bind_info, [out,ref] policy_handle *bind_handle ); -- cgit From 12f2ac5857fd01615a05a6b52d78d97900e0d26c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Oct 2004 10:21:51 +0000 Subject: r2972: make names more consistent metze (This used to be commit 7aa91db53ed5811f0900dd61d63d15e71255285e) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b950290d51..3705e9f029 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -15,11 +15,11 @@ interface drsuapi typedef [flag(NDR_PAHEX)] struct { [range(1,10000)] uint32 length; [size_is(length)] uint8 data[]; - } drsuapi_BindInfo; + } drsuapi_DsBindInfo; NTSTATUS drsuapi_DsBind( [in] GUID *server_guid, - [in,out] drsuapi_BindInfo *bind_info, + [in,out] drsuapi_DsBindInfo *bind_info, [out,ref] policy_handle *bind_handle ); -- cgit From f4e4989cb79dfe7fb2317ca8072f34b66895a696 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 15 Oct 2004 09:48:40 +0000 Subject: r2991: add drsuapi_DsGetDomainControllerInfo() idl and torture test metze (This used to be commit 98ca7640c59aa8694abde03f5661b8908cf088bb) --- source4/librpc/idl/drsuapi.idl | 75 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 3705e9f029..4a0cc7297e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -158,7 +158,80 @@ interface drsuapi /*****************/ /* Function 0x10 */ - NTSTATUS DRSUAPI_DOMAIN_CONTROLLER_INFO(); + typedef struct { + unistr *domain_name; /* netbios or dns */ + int32 level; /* specifies the switch level for the request */ + } drsuapi_DsGetDCInfoRequest1; + + typedef union { + [case(1)] drsuapi_DsGetDCInfoRequest1 req1; + } drsuapi_DsGetDCInfoRequest; + + typedef struct { + unistr *netbios_name; + unistr *dns_name; + unistr *site_name; + unistr *computer_dn; + unistr *server_dn; + uint32 is_pdc; + uint32 is_enabled; + } drsuapi_DsGetDCInfo1; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo1 *array; + } drsuapi_DsGetDCInfoCtr1; + + typedef struct { + unistr *netbios_name; + unistr *dns_name; + unistr *site_name; + unistr *site_dn; + unistr *computer_dn; + unistr *server_dn; + unistr *ntds_dn; + uint32 is_pdc; + uint32 is_enabled; + uint32 is_gc; + GUID site_guid; + GUID computer_guid; + GUID server_guid; + GUID ntds_guid; + } drsuapi_DsGetDCInfo2; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo2 *array; + } drsuapi_DsGetDCInfoCtr2; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + uint32 unknown4; + uint32 unknown5; + uint32 unknown6; + unistr *server_nt4_account; + } drsuapi_DsGetDCInfo01; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo01 *array; + } drsuapi_DsGetDCInfoCtr01; + + typedef union { + [case(1)] drsuapi_DsGetDCInfoCtr1 ctr1; + [case(2)] drsuapi_DsGetDCInfoCtr2 ctr2; + [case(-1)] drsuapi_DsGetDCInfoCtr01 ctr01; + } drsuapi_DsGetDCInfoCtr; + + /* maybe WERROR function */ + NTSTATUS drsuapi_DsGetDomainControllerInfo( + [in,ref] policy_handle *bind_handle, + [in, out] int32 level, + [in,switch_is(level)] drsuapi_DsGetDCInfoRequest req, + [out,switch_is(level)] drsuapi_DsGetDCInfoCtr ctr + ); /*****************/ /* Function 0x11 */ -- cgit From 1890e6a6593d3ddb6bcbda8446e02169e97e9030 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 15 Oct 2004 11:08:14 +0000 Subject: r2992: drsuapi uses WERROR not NTSTATUS metze (This used to be commit 757f67c08b0b1309d8a0b900539111c7bc430b0e) --- source4/librpc/idl/drsuapi.idl | 50 +++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4a0cc7297e..f933437edb 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -17,7 +17,7 @@ interface drsuapi [size_is(length)] uint8 data[]; } drsuapi_DsBindInfo; - NTSTATUS drsuapi_DsBind( + WERROR drsuapi_DsBind( [in] GUID *server_guid, [in,out] drsuapi_DsBindInfo *bind_info, [out,ref] policy_handle *bind_handle @@ -25,49 +25,49 @@ interface drsuapi /*****************/ /* Function 0x01 */ - NTSTATUS drsuapi_DsUnbind( + WERROR drsuapi_DsUnbind( [in,out,ref] policy_handle *bind_handle ); /*****************/ /* Function 0x02 */ - NTSTATUS DRSUAPI_REPLICA_SYNC(); + WERROR DRSUAPI_REPLICA_SYNC(); /*****************/ /* Function 0x03 */ - NTSTATUS DRSUAPI_GET_NC_CHANGES(); + WERROR DRSUAPI_GET_NC_CHANGES(); /*****************/ /* Function 0x04 */ - NTSTATUS DRSUAPI_UPDATE_REFS(); + WERROR DRSUAPI_UPDATE_REFS(); /*****************/ /* Function 0x05 */ - NTSTATUS DRSUAPI_REPLICA_ADD(); + WERROR DRSUAPI_REPLICA_ADD(); /*****************/ /* Function 0x06 */ - NTSTATUS DRSUAPI_REPLICA_DEL(); + WERROR DRSUAPI_REPLICA_DEL(); /*****************/ /* Function 0x07 */ - NTSTATUS DRSUAPI_REPLICA_MODIFY(); + WERROR DRSUAPI_REPLICA_MODIFY(); /*****************/ /* Function 0x08 */ - NTSTATUS DRSUAPI_VERIFY_NAMES(); + WERROR DRSUAPI_VERIFY_NAMES(); /*****************/ /* Function 0x09 */ - NTSTATUS DRSUAPI_GET_MEMBERSHIPS(); + WERROR DRSUAPI_GET_MEMBERSHIPS(); /*****************/ /* Function 0x0a */ - NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE(); + WERROR DRSUAPI_INTER_DOMAIN_MOVE(); /*****************/ /* Function 0x0b */ - NTSTATUS DRSUAPI_GET_NT4_CHANGELOG(); + WERROR DRSUAPI_GET_NT4_CHANGELOG(); /*****************/ /* Function 0x0c */ @@ -137,7 +137,7 @@ interface drsuapi [case(1)] drsuapi_DsNameCtr1 *ctr1; } drsuapi_DsNameCtr; - NTSTATUS drsuapi_DsCrackNames( + WERROR drsuapi_DsCrackNames( [in,ref] policy_handle *bind_handle, [in, out] uint32 level, [in,switch_is(level)] drsuapi_DsNameRequest req, @@ -146,15 +146,15 @@ interface drsuapi /*****************/ /* Function 0x0d */ - NTSTATUS DRSUAPI_WRITE_SPN(); + WERROR DRSUAPI_WRITE_SPN(); /*****************/ /* Function 0x0e */ - NTSTATUS DRSUAPI_REMOVE_DS_SERVER(); + WERROR DRSUAPI_REMOVE_DS_SERVER(); /*****************/ /* Function 0x0f */ - NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN(); + WERROR DRSUAPI_REMOVE_DS_DOMAIN(); /*****************/ /* Function 0x10 */ @@ -226,7 +226,7 @@ interface drsuapi } drsuapi_DsGetDCInfoCtr; /* maybe WERROR function */ - NTSTATUS drsuapi_DsGetDomainControllerInfo( + WERROR drsuapi_DsGetDomainControllerInfo( [in,ref] policy_handle *bind_handle, [in, out] int32 level, [in,switch_is(level)] drsuapi_DsGetDCInfoRequest req, @@ -235,33 +235,33 @@ interface drsuapi /*****************/ /* Function 0x11 */ - NTSTATUS DRSUAPI_ADD_ENTRY(); + WERROR DRSUAPI_ADD_ENTRY(); /*****************/ /* Function 0x12 */ - NTSTATUS DRSUAPI_EXECUTE_KCC(); + WERROR DRSUAPI_EXECUTE_KCC(); /*****************/ /* Function 0x13 */ - NTSTATUS DRSUAPI_GET_REPL_INFO(); + WERROR DRSUAPI_GET_REPL_INFO(); /*****************/ /* Function 0x14 */ - NTSTATUS DRSUAPI_ADD_SID_HISTORY(); + WERROR DRSUAPI_ADD_SID_HISTORY(); /*****************/ /* Function 0x15 */ - NTSTATUS DRSUAPI_GET_MEMBERSHIPS2(); + WERROR DRSUAPI_GET_MEMBERSHIPS2(); /*****************/ /* Function 0x16 */ - NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS(); + WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(); /*****************/ /* Function 0x17 */ - NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE(); + WERROR DRSUAPI_GET_OBJECT_EXISTENCE(); /*****************/ /* Function 0x18 */ - NTSTATUS DRSUAPI_QUERY_SITES_BY_COST(); + WERROR DRSUAPI_QUERY_SITES_BY_COST(); } -- cgit From a8ce1303832b46ff0c976e2d443d4f3ef293f6df Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 15 Oct 2004 11:11:02 +0000 Subject: r2993: fix comment metze (This used to be commit 23a2c5c1586e5ea0261bc84571486658a262740c) --- source4/librpc/idl/drsuapi.idl | 1 - 1 file changed, 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f933437edb..a59dec5a29 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -225,7 +225,6 @@ interface drsuapi [case(-1)] drsuapi_DsGetDCInfoCtr01 ctr01; } drsuapi_DsGetDCInfoCtr; - /* maybe WERROR function */ WERROR drsuapi_DsGetDomainControllerInfo( [in,ref] policy_handle *bind_handle, [in, out] int32 level, -- cgit From 31403d548e95ee6047009b78ed72e7144ece199a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Oct 2004 15:18:05 +0000 Subject: r3043: Use binding strings for specifying endpoints. The property for specifying a endpoint is now also 'endpoint' instead of 'endpoints'. The default endpoint (if none is specified) is still "ncacn_np:[\\pipe\\ifacename]", where ifacename is the name of the interface. Examples: [ uuid(60a15ec5-4de8-11d7-a637-005056a20182), endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:") ] interface rpcecho { void dummy(); } dcerpc_binding is now converted to ep_description in the server, but I hope to completely eliminate ep_description later on. The eventual goal of all these changes is to make it easier to add transports as I'm going to add support for ncalrpc (local RPC over named pipes) and ncacn_unix_stream (Unix sockets). (This used to be commit f3da7c8b443a29b0c656c687a277384ae1353792) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a59dec5a29..15ebb6077d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -3,7 +3,7 @@ [ uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), version(4.0), - endpoints(lsass,protected_storage,TCP-0), + endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:"), helpstring("Active Directory Replication"), pointer_default(unique) ] -- cgit From 2bf6dff9834fbd2789c60e7bcc8bac0c414ca01a Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 27 Oct 2004 04:48:41 +0000 Subject: r3283: converted to quoted uuid() defines in all our IDL. This should help the build on systems like solaris with the SunPRO compiler (This used to be commit fe913ad11bf1c5e9fe04ed769a93b0ea16aa0a34) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 15ebb6077d..17e84fffab 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1,7 +1,7 @@ #include "idl_types.h" [ - uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), + uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"), version(4.0), endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:"), helpstring("Active Directory Replication"), -- cgit From 2f39a9fe621a0c80688fe06712bd5b0495ca7e65 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Nov 2004 08:57:42 +0000 Subject: r3920: - it seem that we need to send a magic bind_guid in DsBind() to make DsWriteAccountSpn() work - add idl and torture test for DsWriteAccountSpn() metze (This used to be commit 625826ad9050c68407ae5e8abfee13699986303c) --- source4/librpc/idl/drsuapi.idl | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 17e84fffab..481c1a1de1 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -17,8 +17,11 @@ interface drsuapi [size_is(length)] uint8 data[]; } drsuapi_DsBindInfo; + /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work */ + const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + WERROR drsuapi_DsBind( - [in] GUID *server_guid, + [in] GUID *bind_guid, [in,out] drsuapi_DsBindInfo *bind_info, [out,ref] policy_handle *bind_handle ); @@ -145,8 +148,39 @@ interface drsuapi ); /*****************/ - /* Function 0x0d */ - WERROR DRSUAPI_WRITE_SPN(); + /* Function 0x0d */ + typedef enum { + DRSUAPI_DS_SPN_OPERATION_ADD = 0, + DRSUAPI_DS_SPN_OPERATION_REPLACE= 1, + DRSUAPI_DS_SPN_OPERATION_DELETE = 2 + } drsuapi_DsSpnOperation; + + typedef struct { + int32 operation; + int32 unknown1; + unistr *object_dn; + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsNameString *spn_names; + } drsuapi_DsWriteAccountSpnRequest1; + + typedef union { + [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; + } drsuapi_DsWriteAccountSpnRequest; + + typedef struct { + WERROR status; + } drsuapi_DsWriteAccountSpnResult1; + + typedef union { + [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; + } drsuapi_DsWriteAccountSpnResult; + + WERROR drsuapi_DsWriteAccountSpn( + [in,ref] policy_handle *bind_handle, + [in, out] uint32 level, + [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req, + [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res + ); /*****************/ /* Function 0x0e */ -- cgit From 114b43a167e8470666125ff0b2ac08c4b5c4f14d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 29 Nov 2004 11:13:56 +0000 Subject: r3999: - reply with the same DsBindInfo blob as w2k3 in the server function - add idl for drsuapi_DsReplicaSync() not yet complete - just return WERR_OK for the drsuapi_DsReplicaSync() server function metze (This used to be commit e896925ac0b58bd48b5b9cc2d675682409d09ae1) --- source4/librpc/idl/drsuapi.idl | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 481c1a1de1..b4784da95b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -20,6 +20,18 @@ interface drsuapi /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work */ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + /* this are the bind info blobs returned (seemed to be const): + w2k3 7ffbff1f81a6ff5d80139441a372e9b779d70268f801000000000000 + w2k 7ffb1f00cb7fb9102391c143bda81fc90e0ff452f4000000 + */ + const uint8 DRSUAPI_DS_BIND_INFO_RESPONSE_W2K3[] = { 0x7f,0xfb,0xff,0x1f,0x81,0xa6,0xff,0x5d, + 0x80,0x13,0x94,0x41,0xa3,0x72,0xe9,0xb7, + 0x79,0xd7,0x02,0x68,0xf8,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00}; + const uint8 DRSUAPI_DS_BIND_INFO_RESPONSE_W2K[] = { 0x7f,0xfb,0x1f,0x00,0xcb,0x7f,0xb9,0x10, + 0x23,0x91,0xc1,0x43,0xbd,0xa8,0x1f,0xc9, + 0x0e,0x0f,0xf4,0x52,0xf4,0x00,0x00,0x00}; + WERROR drsuapi_DsBind( [in] GUID *bind_guid, [in,out] drsuapi_DsBindInfo *bind_info, @@ -33,8 +45,31 @@ interface drsuapi ); /*****************/ - /* Function 0x02 */ - WERROR DRSUAPI_REPLICA_SYNC(); + /* Function 0x02 */ + typedef struct { + uint32 unknown1; + uint32 unknown2; + GUID guid1; + [size_is(28)] uint8 unknown3[28]; + [flag(STR_LEN4|STR_CHARLEN)] string nc_dn; + } drsuapi_DsReplicaSyncRequest1Info; + + typedef struct { + drsuapi_DsReplicaSyncRequest1Info *info; + GUID guid1; + asclstr string1; + uint32 unknown1; + } drsuapi_DsReplicaSyncRequest1; + + typedef union { + [case(1)] drsuapi_DsReplicaSyncRequest1 req1; + } drsuapi_DsReplicaSyncRequest; + + WERROR drsuapi_DsReplicaSync( + [in,ref] policy_handle *bind_handle, + [in] uint32 level, + [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req + ); /*****************/ /* Function 0x03 */ -- cgit From 57314e0df30296291ef3b9698de44249fa1fc77e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 7 Dec 2004 12:20:28 +0000 Subject: r4087: - add idl and torture tests for drsuapi_DsReplicaGetInfo() (NOTE: that the drsuapi_DsReplicaObjMetaData2 struct is not corrently parsed yet and there're some unknown fields left in someother infotypes) metze (This used to be commit 4fd57d5e7cff085a8c003ea82f282e26dc1346d9) --- source4/librpc/idl/drsuapi.idl | 286 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 283 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b4784da95b..15d1ca8efc 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -17,8 +17,12 @@ interface drsuapi [size_is(length)] uint8 data[]; } drsuapi_DsBindInfo; - /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work */ + /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work + * + * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 + */ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + /* this are the bind info blobs returned (seemed to be const): w2k3 7ffbff1f81a6ff5d80139441a372e9b779d70268f801000000000000 @@ -310,8 +314,284 @@ interface drsuapi WERROR DRSUAPI_EXECUTE_KCC(); /*****************/ - /* Function 0x13 */ - WERROR DRSUAPI_GET_REPL_INFO(); + /* Function 0x13 */ + typedef enum { + DRSUAPI_DS_REPLICA_GET_INFO = 1, + DRSUAPI_DS_REPLICA_GET_INFO2 = 2 + } drsuapi_DsReplicaGetInfoLevel; + + typedef enum { + DRSUAPI_DS_REPLICA_INFO_NEIGHBORS = 0, + DRSUAPI_DS_REPLICA_INFO_CURSORS = 1, + DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA = 2, + DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES = 3, + DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES = 4, + DRSUAPI_DS_REPLICA_INFO_PENDING_OPS = 5, + DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA = 6, + DRSUAPI_DS_REPLICA_INFO_CURSORS2 = 7, + DRSUAPI_DS_REPLICA_INFO_CURSORS3 = 8, + DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 = 9, + DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 = 10, + DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 = -2, + DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 = -4, + DRSUAPI_DS_REPLICA_INFO_CURSURS05 = -5, + DRSUAPI_DS_REPLICA_INFO_06 = -6 + } drsuapi_DsReplicaInfoType; + + typedef struct { + int32 info_type; + unistr *object_dn; + GUID guid1; + } drsuapi_DsReplicaGetInfoRequest1; + + typedef struct { + int32 info_type; + unistr *object_dn; + GUID guid1; + uint32 unknown1; + unistr *string1; + unistr *string2; + uint32 unknown2; + } drsuapi_DsReplicaGetInfoRequest2; + + typedef union { + [case(1)] drsuapi_DsReplicaGetInfoRequest1 req1; + [case(2)] drsuapi_DsReplicaGetInfoRequest2 req2; + } drsuapi_DsReplicaGetInfoRequest; + + typedef struct { + unistr *naming_context_dn; + unistr *source_dsa_obj_dn; + unistr *source_dsa_address; + unistr *transport_obj_dn; + uint32 replica_flags; + uint32 reserved; + GUID naming_context_obj_guid; + GUID source_dsa_obj_guid; + GUID source_dsa_invocation_id; + GUID transport_obj_guid; + uint64 tmp_highest_usn; + uint64 highest_usn; + NTTIME last_success; + NTTIME last_attempt; + WERROR result_last_attempt; + uint32 consecutive_sync_failures; + } drsuapi_DsReplicaNeighbour; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaNeighbour array[]; + } drsuapi_DsReplicaNeighbourCtr; + + typedef struct { + GUID source_dsa_invocation_id; + uint64 highest_usn; + } drsuapi_DsReplicaCoursor; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaCoursor array[]; + } drsuapi_DsReplicaCoursorCtr; + + typedef struct { + unistr *attribute_name; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + uint64 originating_usn; + uint64 local_usn; + } drsuapi_DsReplicaObjMetaData; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaObjMetaData array[]; + } drsuapi_DsReplicaObjMetaDataCtr; + + typedef struct { + unistr *dsa_obj_dn; + GUID dsa_obj_guid; + NTTIME first_failure; + uint32 num_failures; + WERROR last_result; + } drsuapi_DsReplicaKccDsaFailure; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaKccDsaFailure array[]; + } drsuapi_DsReplicaKccDsaFailuresCtr; + + typedef struct { + NTTIME operation_start; + uint32 serial_num; /* unique till reboot */ + uint32 priority; + uint16 operation_type; + uint32 options_flags; + unistr *nc_dn; + unistr *remote_dsa_obj_dn; + unistr *remote_dsa_address; + GUID nc_obj_guid; + GUID remote_dsa_obj_guid; + } drsuapi_DsReplicaOp; + + typedef struct { + NTTIME time; + uint32 count; + [size_is(count)] drsuapi_DsReplicaOp array[]; + } drsuapi_DsReplicaOpCtr; + + typedef struct { + unistr *attribute_name; + unistr *object_dn; + uint32 value_length; + [size_is(value_length)] uint8 *value; + NTTIME deleted; + NTTIME created; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + uint64 originating_usn; + uint64 local_usn; + } drsuapi_DsReplicaAttrValMetaData; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; + } drsuapi_DsReplicaAttrValMetaDataCtr; + + typedef struct { + GUID source_dsa_invocation_id; + uint64 highest_usn; + NTTIME last_sync_success; + } drsuapi_DsReplicaCoursor2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaCoursor2 array[]; + } drsuapi_DsReplicaCoursor2Ctr; + + typedef struct { + GUID source_dsa_invocation_id; + uint64 highest_usn; + NTTIME last_sync_success; + unistr *source_dsa_obj_dn; + } drsuapi_DsReplicaCoursor3; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaCoursor3 array[]; + } drsuapi_DsReplicaCoursor3Ctr; + + typedef struct { + uint32 attribute_name;/*unistr *attribute_name;*/ + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + uint64 originating_usn; + uint64 local_usn; + uint32 originating_dsa_obj_dn;/*unistr *originating_dsa_obj_dn;*/ + uint32 u1; /* in the last element this is not present; some stupid alignment? */ + } drsuapi_DsReplicaObjMetaData2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[]; + } drsuapi_DsReplicaObjMetaData2Ctr; + + typedef struct { + unistr *attribute_name; + unistr *object_dn; + uint32 value_length; + [size_is(value_length)] uint8 *value; + NTTIME deleted; + NTTIME created; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + uint64 originating_usn; + uint64 local_usn; + unistr *originating_dsa_obj_dn; + } drsuapi_DsReplicaAttrValMetaData2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[]; + } drsuapi_DsReplicaAttrValMetaData2Ctr; + + typedef struct { + uint64 u1; /* session number? */ + uint32 u2; + uint32 u3; + GUID bind_guid; + NTTIME_1sec bind_time; + uint32 u4; /* flags? */ + uint32 u5; + } drsuapi_DsReplicaConnection04; + + typedef struct { + [range(0,10000)] uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaConnection04 array[]; + } drsuapi_DsReplicaConnection04Ctr; + + typedef struct { + uint32 u1; + uint32 u2; + [range(0,0x100000)] uint32 count; + uint32 u3; + [size_is(count)] drsuapi_DsReplicaCoursor array[]; + } drsuapi_DsReplicaCoursor05Ctr; + + typedef struct { + unistr *str1; + uint32 u1; + uint32 u2; + uint32 u3; + uint32 u4; + uint32 u5; + uint64 u6; + uint32 u7; + } drsuapi_DsReplica06; + + typedef struct { + [range(0,256)] uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplica06 array[]; + } drsuapi_DsReplica06Ctr; + + typedef union { + [case(0)] drsuapi_DsReplicaNeighbourCtr *neighbours; + [case(1)] drsuapi_DsReplicaCoursorCtr *coursors; + [case(2)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; + [case(3)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; + [case(4)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; + [case(5)] drsuapi_DsReplicaOpCtr *pendingops; + [case(6)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; + [case(7)] drsuapi_DsReplicaCoursor2Ctr *coursors2; + [case(8)] drsuapi_DsReplicaCoursor3Ctr *coursors3; + [case(9)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; + [case(10)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; + [case(-2)] drsuapi_DsReplicaNeighbourCtr *neighbours02; + [case(-4)] drsuapi_DsReplicaConnection04Ctr *connections04; + [case(-5)] drsuapi_DsReplicaCoursor05Ctr *coursors05; + [case(-6)] drsuapi_DsReplica06Ctr *i06; + } drsuapi_DsReplicaInfo; + + WERROR drsuapi_DsReplicaGetInfo( + [in,ref] policy_handle *bind_handle, + [in] int32 level, + [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req, + [out] int32 info_type, + [out,switch_is(info_type)] drsuapi_DsReplicaInfo info + ); /*****************/ /* Function 0x14 */ -- cgit From 58e6233c2e103d6cb1a2ffd51c3a6d1bd4947d27 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 8 Dec 2004 10:54:09 +0000 Subject: r4100: fix drsuapi_DsReplicaObjMetaData2() idl (many thanks to tridge for telling me that HYPER_T isn't the same as uint64!) metze (This used to be commit 74b9ef4de5263953aa2e03401a271f2830163efe) --- source4/librpc/idl/drsuapi.idl | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 15d1ca8efc..3b0444980d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -370,8 +370,8 @@ interface drsuapi GUID source_dsa_obj_guid; GUID source_dsa_invocation_id; GUID transport_obj_guid; - uint64 tmp_highest_usn; - uint64 highest_usn; + HYPER_T tmp_highest_usn; + HYPER_T highest_usn; NTTIME last_success; NTTIME last_attempt; WERROR result_last_attempt; @@ -386,7 +386,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - uint64 highest_usn; + HYPER_T highest_usn; } drsuapi_DsReplicaCoursor; typedef struct { @@ -400,8 +400,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - uint64 originating_usn; - uint64 local_usn; + HYPER_T originating_usn; + HYPER_T local_usn; } drsuapi_DsReplicaObjMetaData; typedef struct { @@ -453,8 +453,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - uint64 originating_usn; - uint64 local_usn; + HYPER_T originating_usn; + HYPER_T local_usn; } drsuapi_DsReplicaAttrValMetaData; typedef struct { @@ -465,7 +465,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - uint64 highest_usn; + HYPER_T highest_usn; NTTIME last_sync_success; } drsuapi_DsReplicaCoursor2; @@ -477,7 +477,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - uint64 highest_usn; + HYPER_T highest_usn; NTTIME last_sync_success; unistr *source_dsa_obj_dn; } drsuapi_DsReplicaCoursor3; @@ -489,14 +489,13 @@ interface drsuapi } drsuapi_DsReplicaCoursor3Ctr; typedef struct { - uint32 attribute_name;/*unistr *attribute_name;*/ + unistr *attribute_name; uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - uint64 originating_usn; - uint64 local_usn; - uint32 originating_dsa_obj_dn;/*unistr *originating_dsa_obj_dn;*/ - uint32 u1; /* in the last element this is not present; some stupid alignment? */ + HYPER_T originating_usn; + HYPER_T local_usn; + unistr *originating_dsa_obj_dn; } drsuapi_DsReplicaObjMetaData2; typedef struct { @@ -515,8 +514,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - uint64 originating_usn; - uint64 local_usn; + HYPER_T originating_usn; + HYPER_T local_usn; unistr *originating_dsa_obj_dn; } drsuapi_DsReplicaAttrValMetaData2; -- cgit From 87d5e061e0ddd41e21a60b8934db339e5ef5f306 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 8 Dec 2004 11:30:26 +0000 Subject: r4102: more uint64 vs HYPER_T fixes NOTE: [u]int64 uses 4 Byte alignment and HYPER_T uses 8 Byte alignment metze (This used to be commit 717454eb2fd2bf90e67074acefdae5304cd7433f) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 3b0444980d..846ccd82a2 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -526,7 +526,7 @@ interface drsuapi } drsuapi_DsReplicaAttrValMetaData2Ctr; typedef struct { - uint64 u1; /* session number? */ + HYPER_T u1; /* session number? */ uint32 u2; uint32 u3; GUID bind_guid; @@ -556,7 +556,7 @@ interface drsuapi uint32 u3; uint32 u4; uint32 u5; - uint64 u6; + HYPER_T u6; uint32 u7; } drsuapi_DsReplica06; -- cgit From 72273b5046106bd5a97ffbf821a6794f56705ede Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 13 Dec 2004 09:32:57 +0000 Subject: r4171: an attempt at better IDL for DsReplicaSync (This used to be commit a4ebef4f53d0eb5aef1bc4ae76ac9ad66bf3b528) --- source4/librpc/idl/drsuapi.idl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 846ccd82a2..d1b6b7edb8 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -54,14 +54,15 @@ interface drsuapi uint32 unknown1; uint32 unknown2; GUID guid1; - [size_is(28)] uint8 unknown3[28]; - [flag(STR_LEN4|STR_CHARLEN)] string nc_dn; + uint8 unknown3[28]; + [range(0,0xA00000)] uint32 length; + [size_is(length+1)] uint16 nc_dn[*]; } drsuapi_DsReplicaSyncRequest1Info; typedef struct { drsuapi_DsReplicaSyncRequest1Info *info; GUID guid1; - asclstr string1; + astring *string1; uint32 unknown1; } drsuapi_DsReplicaSyncRequest1; -- cgit From edf98253fa8fe627d8824d975731ea068debf4b5 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 13 Dec 2004 10:48:35 +0000 Subject: r4174: nicer debug output metze (This used to be commit 79bdcabcc57da9f7d01b09d3b33fe22770c6e7e8) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index d1b6b7edb8..a3f6cf2100 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -50,7 +50,7 @@ interface drsuapi /*****************/ /* Function 0x02 */ - typedef struct { + typedef [flag(NDR_PAHEX)] struct { uint32 unknown1; uint32 unknown2; GUID guid1; -- cgit From 985e86b04d4035c133a29a6a681523b9ca247a19 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 13 Dec 2004 11:34:57 +0000 Subject: r4176: I just remeber that I have already implement STR_CONFORMANT so use it in DsReplicaSync() metze (This used to be commit ca610da1fc3c059d35e17238e8cac5e5b38790c3) --- source4/librpc/idl/drsuapi.idl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a3f6cf2100..c5f7f9f8d7 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -55,8 +55,7 @@ interface drsuapi uint32 unknown2; GUID guid1; uint8 unknown3[28]; - [range(0,0xA00000)] uint32 length; - [size_is(length+1)] uint16 nc_dn[*]; + [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string nc_dn; } drsuapi_DsReplicaSyncRequest1Info; typedef struct { -- cgit From 7d24d23e5595aa150e588229e4ab18d52d1a69de Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 13 Dec 2004 12:01:43 +0000 Subject: r4178: the level is mostly singed not unsigned metze (This used to be commit 6411c00b3c2c4e11da2b41bfa53e0d42368e3e76) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c5f7f9f8d7..a7605eb2f8 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -71,7 +71,7 @@ interface drsuapi WERROR drsuapi_DsReplicaSync( [in,ref] policy_handle *bind_handle, - [in] uint32 level, + [in] int32 level, [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req ); -- cgit From 6ed5055d8e70e5889d8015783bad401d1bfa9c02 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 13 Dec 2004 12:34:43 +0000 Subject: r4181: use int32 for level metze (This used to be commit 3a6047bc47671bfab14272dfa81f80f4457b209c) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a7605eb2f8..b914292abb 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -181,7 +181,7 @@ interface drsuapi WERROR drsuapi_DsCrackNames( [in,ref] policy_handle *bind_handle, - [in, out] uint32 level, + [in, out] int32 level, [in,switch_is(level)] drsuapi_DsNameRequest req, [out,switch_is(level)] drsuapi_DsNameCtr ctr ); @@ -216,7 +216,7 @@ interface drsuapi WERROR drsuapi_DsWriteAccountSpn( [in,ref] policy_handle *bind_handle, - [in, out] uint32 level, + [in, out] int32 level, [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req, [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res ); -- cgit From 75f02f9d4daf4a16b408ce145f841f11d4b0ca67 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 14 Dec 2004 07:18:58 +0000 Subject: r4203: the bind_info blob isn't a const. here's the idl to parse it, because we don't want the callers to manually de/encode this metze (This used to be commit 983f74c3651759991378b0d7b13b0952d77b3544) --- source4/librpc/idl/drsuapi.idl | 92 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 75 insertions(+), 17 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b914292abb..a85871e28e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -12,33 +12,91 @@ interface drsuapi /*****************/ /* Function 0x00 */ - typedef [flag(NDR_PAHEX)] struct { - [range(1,10000)] uint32 length; - [size_is(length)] uint8 data[]; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = 0x00000004; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = 0x00000008; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = 0x00000010; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_00000080 = 0x00000080; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = 0x00000400; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = 0x00000800; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = 0x00001000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = 0x00002000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = 0x00004000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = 0x00008000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = 0x00010000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = 0x00020000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_00100000 = 0x00100000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = 0x00800000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = 0x01000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = 0x02000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = 0x04000000; + /* the following 3 are correctly be the same value */ + const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = 0x08000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = 0x08000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_20000000 = 0x20000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_40000000 = 0x40000000; + const uint32 DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000; + + /* this is used by w2k */ + typedef struct { + uint32 supported_extensions; + GUID site_guid; + uint32 u1; + } drsuapi_DsBindInfo24; + + /* this is used by w2k3 */ + typedef struct { + uint32 supported_extensions; + GUID site_guid; + uint32 u1; + uint32 repl_epoch; + } drsuapi_DsBindInfo28; + + typedef struct { + [flag(NDR_REMAINING)] DATA_BLOB info; + } drsuapi_DsBindInfoFallBack; + + typedef [nodiscriminant] union { + [case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24; + [case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28; + [default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack; } drsuapi_DsBindInfo; + /* the drsuapi_DsBindInfoCtr was this before + * typedef [flag(NDR_PAHEX)] struct { + * [range(1,10000)] uint32 length; + * [size_is(length)] uint8 data[]; + * } drsuapi_DsBindInfo; + * + * but we don't want the caller to manually decode this blob, + * so we're doing it here + */ + + typedef struct { + [range(1,10000)] uint32 length; + [switch_is(length)] drsuapi_DsBindInfo info; + } drsuapi_DsBindInfoCtr; + /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work * * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 */ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; - - - /* this are the bind info blobs returned (seemed to be const): - w2k3 7ffbff1f81a6ff5d80139441a372e9b779d70268f801000000000000 - w2k 7ffb1f00cb7fb9102391c143bda81fc90e0ff452f4000000 - */ - const uint8 DRSUAPI_DS_BIND_INFO_RESPONSE_W2K3[] = { 0x7f,0xfb,0xff,0x1f,0x81,0xa6,0xff,0x5d, - 0x80,0x13,0x94,0x41,0xa3,0x72,0xe9,0xb7, - 0x79,0xd7,0x02,0x68,0xf8,0x01,0x00,0x00, - 0x00,0x00,0x00,0x00}; - const uint8 DRSUAPI_DS_BIND_INFO_RESPONSE_W2K[] = { 0x7f,0xfb,0x1f,0x00,0xcb,0x7f,0xb9,0x10, - 0x23,0x91,0xc1,0x43,0xbd,0xa8,0x1f,0xc9, - 0x0e,0x0f,0xf4,0x52,0xf4,0x00,0x00,0x00}; WERROR drsuapi_DsBind( [in] GUID *bind_guid, - [in,out] drsuapi_DsBindInfo *bind_info, + [in,out] drsuapi_DsBindInfoCtr *bind_info, [out,ref] policy_handle *bind_handle ); -- cgit From 922f196442a8b16a0b4b2b11a0c9cc9f414b087c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 5 Jan 2005 16:48:58 +0000 Subject: r4541: make use of new enum and bitmap features metze (This used to be commit fd96a07c5a1f4969bfd04ffd3b6990a2dad41cf4) --- source4/librpc/idl/drsuapi.idl | 146 +++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 71 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a85871e28e..bc6b260d4a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -11,53 +11,57 @@ interface drsuapi { /*****************/ /* Function 0x00 */ - - const uint32 DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = 0x00000004; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = 0x00000008; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = 0x00000010; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_00000080 = 0x00000080; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = 0x00000400; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = 0x00000800; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = 0x00001000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = 0x00002000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = 0x00004000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = 0x00008000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = 0x00010000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = 0x00020000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_00100000 = 0x00100000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = 0x00800000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = 0x01000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = 0x02000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = 0x04000000; - /* the following 3 are correctly be the same value */ - const uint32 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = 0x08000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = 0x08000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_20000000 = 0x20000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_40000000 = 0x40000000; - const uint32 DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000; + typedef [bitmap32bit] bitmap { + DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001, + DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002, + DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = 0x00000004, + DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = 0x00000008, + DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = 0x00000010, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020, + DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040, + DRSUAPI_SUPPORTED_EXTENSION_00000080 = 0x00000080, + DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100, + DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200, + DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = 0x00000400, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = 0x00000800, + DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD= 0x00001000, + DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = 0x00002000, + DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = 0x00004000, + DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = 0x00008000, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = 0x00010000, + DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = 0x00020000, + DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000, + DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000, + DRSUAPI_SUPPORTED_EXTENSION_00100000 = 0x00100000, + DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000, + DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = 0x00800000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = 0x01000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = 0x02000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = 0x04000000, + /* + * the following 3 have the same value + * repadmin.exe /bind says that + */ + DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000, + DRSUAPI_SUPPORTED_EXTENSION_20000000 = 0x20000000, + DRSUAPI_SUPPORTED_EXTENSION_40000000 = 0x40000000, + DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000 + } drsuapi_SupportedExtensions; /* this is used by w2k */ typedef struct { - uint32 supported_extensions; + drsuapi_SupportedExtensions supported_extensions; GUID site_guid; uint32 u1; } drsuapi_DsBindInfo24; /* this is used by w2k3 */ typedef struct { - uint32 supported_extensions; + drsuapi_SupportedExtensions supported_extensions; GUID site_guid; uint32 u1; uint32 repl_epoch; @@ -171,7 +175,7 @@ interface drsuapi /*****************/ /* Function 0x0c */ - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_NAME_STATUS_OK = 0, DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR = 1, DRSUAPI_DS_NAME_STATUS_NOT_FOUND = 2, @@ -182,7 +186,7 @@ interface drsuapi DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL = 7 } drsuapi_DsNameStatus; - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_NAME_FLAG_NO_FLAGS = 0x0, DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1, DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC = 0x2, @@ -190,7 +194,7 @@ interface drsuapi DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL = 0x8 } drsuapi_DsNameFlags; - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_NAME_FORMAT_UKNOWN = 0, DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 1, DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 2, @@ -211,9 +215,9 @@ interface drsuapi typedef struct { uint32 unknown1; /* 0x000004e4 */ uint32 unknown2; /* 0x00000407 */ - uint32 format_flags; - uint32 format_offered; - uint32 format_desired; + drsuapi_DsNameFlags format_flags; + drsuapi_DsNameFormat format_offered; + drsuapi_DsNameFormat format_desired; [range(1,10000)] uint32 count; [size_is(count)] drsuapi_DsNameString *names; } drsuapi_DsNameRequest1; @@ -223,7 +227,7 @@ interface drsuapi } drsuapi_DsNameRequest; typedef struct { - uint32 status; + drsuapi_DsNameStatus status; unistr *dns_domain_name; unistr *result_name; } drsuapi_DsNameInfo1; @@ -246,15 +250,15 @@ interface drsuapi /*****************/ /* Function 0x0d */ - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_SPN_OPERATION_ADD = 0, DRSUAPI_DS_SPN_OPERATION_REPLACE= 1, DRSUAPI_DS_SPN_OPERATION_DELETE = 2 } drsuapi_DsSpnOperation; typedef struct { - int32 operation; - int32 unknown1; + drsuapi_DsSpnOperation operation; + uint32 unknown1; unistr *object_dn; [range(0,10000)] uint32 count; [size_is(count)] drsuapi_DsNameString *spn_names; @@ -373,12 +377,12 @@ interface drsuapi /*****************/ /* Function 0x13 */ - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_REPLICA_GET_INFO = 1, DRSUAPI_DS_REPLICA_GET_INFO2 = 2 } drsuapi_DsReplicaGetInfoLevel; - typedef enum { + typedef [v1_enum] enum { DRSUAPI_DS_REPLICA_INFO_NEIGHBORS = 0, DRSUAPI_DS_REPLICA_INFO_CURSORS = 1, DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA = 2, @@ -397,13 +401,13 @@ interface drsuapi } drsuapi_DsReplicaInfoType; typedef struct { - int32 info_type; + drsuapi_DsReplicaInfoType info_type; unistr *object_dn; GUID guid1; } drsuapi_DsReplicaGetInfoRequest1; typedef struct { - int32 info_type; + drsuapi_DsReplicaInfoType info_type; unistr *object_dn; GUID guid1; uint32 unknown1; @@ -413,8 +417,8 @@ interface drsuapi } drsuapi_DsReplicaGetInfoRequest2; typedef union { - [case(1)] drsuapi_DsReplicaGetInfoRequest1 req1; - [case(2)] drsuapi_DsReplicaGetInfoRequest2 req2; + [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; + [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; } drsuapi_DsReplicaGetInfoRequest; typedef struct { @@ -625,28 +629,28 @@ interface drsuapi } drsuapi_DsReplica06Ctr; typedef union { - [case(0)] drsuapi_DsReplicaNeighbourCtr *neighbours; - [case(1)] drsuapi_DsReplicaCoursorCtr *coursors; - [case(2)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; - [case(3)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; - [case(4)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; - [case(5)] drsuapi_DsReplicaOpCtr *pendingops; - [case(6)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; - [case(7)] drsuapi_DsReplicaCoursor2Ctr *coursors2; - [case(8)] drsuapi_DsReplicaCoursor3Ctr *coursors3; - [case(9)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; - [case(10)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; - [case(-2)] drsuapi_DsReplicaNeighbourCtr *neighbours02; - [case(-4)] drsuapi_DsReplicaConnection04Ctr *connections04; - [case(-5)] drsuapi_DsReplicaCoursor05Ctr *coursors05; - [case(-6)] drsuapi_DsReplica06Ctr *i06; + [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors; + [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; + [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; + [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; + [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] drsuapi_DsReplicaOpCtr *pendingops; + [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCoursor2Ctr *coursors2; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCoursor3Ctr *coursors3; + [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; + [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; + [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02; + [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04; + [case(DRSUAPI_DS_REPLICA_INFO_CURSURS05)] drsuapi_DsReplicaCoursor05Ctr *coursors05; + [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06; } drsuapi_DsReplicaInfo; WERROR drsuapi_DsReplicaGetInfo( [in,ref] policy_handle *bind_handle, - [in] int32 level, + [in] drsuapi_DsReplicaGetInfoLevel level, [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req, - [out] int32 info_type, + [out] drsuapi_DsReplicaInfoType info_type, [out,switch_is(info_type)] drsuapi_DsReplicaInfo info ); -- cgit From 0c75667594e6d3aaf856289ac6e09230c45808d8 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 10 Jan 2005 12:12:44 +0000 Subject: r4638: expose lsa and drsuapi on ncalrpc (This used to be commit 4e62bd2a349c0cce8cb82a401fdf1cc33828af6f) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index bc6b260d4a..74793f3db3 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -3,7 +3,7 @@ [ uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"), version(4.0), - endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:"), + endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), helpstring("Active Directory Replication"), pointer_default(unique) ] -- cgit From 1e42cacf6a8643bd633f631c212d71760852abbc Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 27 Jan 2005 06:33:07 +0000 Subject: r5036: changed HYPER_T to the more standard "hyper" (This used to be commit 1d1a9c11ee681540ef8a1029409bb24fc26f976c) --- source4/librpc/idl/drsuapi.idl | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 74793f3db3..be7a06bf23 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -432,8 +432,8 @@ interface drsuapi GUID source_dsa_obj_guid; GUID source_dsa_invocation_id; GUID transport_obj_guid; - HYPER_T tmp_highest_usn; - HYPER_T highest_usn; + hyper tmp_highest_usn; + hyper highest_usn; NTTIME last_success; NTTIME last_attempt; WERROR result_last_attempt; @@ -448,7 +448,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - HYPER_T highest_usn; + hyper highest_usn; } drsuapi_DsReplicaCoursor; typedef struct { @@ -462,8 +462,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - HYPER_T originating_usn; - HYPER_T local_usn; + hyper originating_usn; + hyper local_usn; } drsuapi_DsReplicaObjMetaData; typedef struct { @@ -515,8 +515,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - HYPER_T originating_usn; - HYPER_T local_usn; + hyper originating_usn; + hyper local_usn; } drsuapi_DsReplicaAttrValMetaData; typedef struct { @@ -527,7 +527,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - HYPER_T highest_usn; + hyper highest_usn; NTTIME last_sync_success; } drsuapi_DsReplicaCoursor2; @@ -539,7 +539,7 @@ interface drsuapi typedef struct { GUID source_dsa_invocation_id; - HYPER_T highest_usn; + hyper highest_usn; NTTIME last_sync_success; unistr *source_dsa_obj_dn; } drsuapi_DsReplicaCoursor3; @@ -555,8 +555,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - HYPER_T originating_usn; - HYPER_T local_usn; + hyper originating_usn; + hyper local_usn; unistr *originating_dsa_obj_dn; } drsuapi_DsReplicaObjMetaData2; @@ -576,8 +576,8 @@ interface drsuapi uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; - HYPER_T originating_usn; - HYPER_T local_usn; + hyper originating_usn; + hyper local_usn; unistr *originating_dsa_obj_dn; } drsuapi_DsReplicaAttrValMetaData2; @@ -588,7 +588,7 @@ interface drsuapi } drsuapi_DsReplicaAttrValMetaData2Ctr; typedef struct { - HYPER_T u1; /* session number? */ + hyper u1; /* session number? */ uint32 u2; uint32 u3; GUID bind_guid; @@ -618,7 +618,7 @@ interface drsuapi uint32 u3; uint32 u4; uint32 u5; - HYPER_T u6; + hyper u6; uint32 u7; } drsuapi_DsReplica06; -- cgit From 631aa1f0efa75924c4d8ba639de80527fb8da7b5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 5 Mar 2005 18:34:18 +0000 Subject: r5661: Be a little stricter on syntax regarding arrays. A pointer to an array can now only be : type *name[]; rather then : type *name; which was supported in the past. Warnings will be given when the first syntax is used. Reasons for this change in behaviour include improved readability and the fact that the second format makes dealing with multiple levels of pointers harder. (This used to be commit a416de5825c540fd3741731c4be05e9a659a6fdb) --- source4/librpc/idl/drsuapi.idl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index be7a06bf23..72197aec16 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -219,7 +219,7 @@ interface drsuapi drsuapi_DsNameFormat format_offered; drsuapi_DsNameFormat format_desired; [range(1,10000)] uint32 count; - [size_is(count)] drsuapi_DsNameString *names; + [size_is(count)] drsuapi_DsNameString *names[]; } drsuapi_DsNameRequest1; typedef union { @@ -234,7 +234,7 @@ interface drsuapi typedef struct { uint32 count; - [size_is(count)] drsuapi_DsNameInfo1 *array; + [size_is(count)] drsuapi_DsNameInfo1 *array[]; } drsuapi_DsNameCtr1; typedef union { @@ -261,7 +261,7 @@ interface drsuapi uint32 unknown1; unistr *object_dn; [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsNameString *spn_names; + [size_is(count)] drsuapi_DsNameString *spn_names[]; } drsuapi_DsWriteAccountSpnRequest1; typedef union { @@ -314,7 +314,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo1 *array; + [size_is(count)] drsuapi_DsGetDCInfo1 *array[]; } drsuapi_DsGetDCInfoCtr1; typedef struct { @@ -336,7 +336,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo2 *array; + [size_is(count)] drsuapi_DsGetDCInfo2 *array[]; } drsuapi_DsGetDCInfoCtr2; typedef struct { @@ -351,7 +351,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo01 *array; + [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; } drsuapi_DsGetDCInfoCtr01; typedef union { @@ -509,7 +509,7 @@ interface drsuapi unistr *attribute_name; unistr *object_dn; uint32 value_length; - [size_is(value_length)] uint8 *value; + [size_is(value_length)] uint8 *value[]; NTTIME deleted; NTTIME created; uint32 version; @@ -570,7 +570,7 @@ interface drsuapi unistr *attribute_name; unistr *object_dn; uint32 value_length; - [size_is(value_length)] uint8 *value; + [size_is(value_length)] uint8 *value[]; NTTIME deleted; NTTIME created; uint32 version; -- cgit From ffae01d432c715961c44e499258ee2a9f7e3d5f1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 6 Mar 2005 17:02:14 +0000 Subject: r5672: Use switch_type() and the token storage mechanism for unions: - Makes union handling less special - Allows unions in arrays, etc - Compatible with midl - Pidl will warn about switch_type() and the type of the switch_is() variable being different (This used to be commit dc6b4ffc82a191631bc16a4b93a4916a39183ec6) --- source4/librpc/idl/drsuapi.idl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 72197aec16..759599e707 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -127,7 +127,7 @@ interface drsuapi uint32 unknown1; } drsuapi_DsReplicaSyncRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsReplicaSyncRequest1 req1; } drsuapi_DsReplicaSyncRequest; @@ -222,7 +222,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameString *names[]; } drsuapi_DsNameRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsNameRequest1 req1; } drsuapi_DsNameRequest; @@ -237,7 +237,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameInfo1 *array[]; } drsuapi_DsNameCtr1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsNameCtr1 *ctr1; } drsuapi_DsNameCtr; @@ -264,7 +264,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameString *spn_names[]; } drsuapi_DsWriteAccountSpnRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; } drsuapi_DsWriteAccountSpnRequest; @@ -272,7 +272,7 @@ interface drsuapi WERROR status; } drsuapi_DsWriteAccountSpnResult1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; } drsuapi_DsWriteAccountSpnResult; @@ -298,7 +298,7 @@ interface drsuapi int32 level; /* specifies the switch level for the request */ } drsuapi_DsGetDCInfoRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetDCInfoRequest1 req1; } drsuapi_DsGetDCInfoRequest; @@ -354,7 +354,7 @@ interface drsuapi [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; } drsuapi_DsGetDCInfoCtr01; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetDCInfoCtr1 ctr1; [case(2)] drsuapi_DsGetDCInfoCtr2 ctr2; [case(-1)] drsuapi_DsGetDCInfoCtr01 ctr01; @@ -416,7 +416,7 @@ interface drsuapi uint32 unknown2; } drsuapi_DsReplicaGetInfoRequest2; - typedef union { + typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; } drsuapi_DsReplicaGetInfoRequest; @@ -628,7 +628,7 @@ interface drsuapi [size_is(count)] drsuapi_DsReplica06 array[]; } drsuapi_DsReplica06Ctr; - typedef union { + typedef [switch_type(drsuapi_DsReplicaInfoType)] union { [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; -- cgit From 4b83366b6cf81a29fab0f9dac5e6074784c639a8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 11 Mar 2005 12:15:50 +0000 Subject: r5742: - add torture test and idl for DsReplicaUpdateRefs() (the torture test currently only tests if the idl is correct) - add start for idl for DsGetNCChanges() (if someone didn't noticed the current ethereal trunk code can successful decrypt DCERPC and LDAP gsskrb5 encrypted blobs, when you provide a keytab and have compiled against heimdal :-) - add a view bitmaps and enum's for better debugging metze (This used to be commit cf7c1352ab2857b80256e02f70ab3fbd5177d596) --- source4/librpc/idl/drsuapi.idl | 137 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 127 insertions(+), 10 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 759599e707..8a6a96dcac 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -4,6 +4,7 @@ uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"), version(4.0), endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), + authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique) ] @@ -112,19 +113,46 @@ interface drsuapi /*****************/ /* Function 0x02 */ - typedef [flag(NDR_PAHEX)] struct { + typedef [gensize,flag(NDR_PAHEX)] struct { + [value(ndr_size_drsuapi_DsReplicaSyncRequest1Info(r, ndr->flags)-4)] uint32 __ndr_size; uint32 unknown1; - uint32 unknown2; GUID guid1; - uint8 unknown3[28]; + uint8 byte_array[28]; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string nc_dn; } drsuapi_DsReplicaSyncRequest1Info; + typedef bitmap { + DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = 0x00000002, + DRSUAPI_DS_REPLICA_SYNC_PERIODIC = 0x00000004, + DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING = 0x00000008, + DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES = 0x00000010, + DRSUAPI_DS_REPLICA_SYNC_FULL = 0x00000020, + DRSUAPI_DS_REPLICA_SYNC_URGENT = 0x00000040, + DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD = 0x00000080, + DRSUAPI_DS_REPLICA_SYNC_FORCE = 0x00000100, + DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE = 0x00000200, + DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED = 0x00000400, + DRSUAPI_DS_REPLICA_SYNC_TWO_WAY = 0x00000800, + DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY = 0x00001000, + DRSUAPI_DS_REPLICA_SYNC_INITIAL = 0x00002000, + DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION = 0x00004000, + DRSUAPI_DS_REPLICA_SYNC_ABANDONED = 0x00008000, + DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS = 0x00010000, + DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000, + DRSUAPI_DS_REPLICA_SYNC_REQUEUE = 0x00040000, + DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION = 0x00080000, + DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA = 0x00100000, + DRSUAPI_DS_REPLICA_SYNC_CRITICAL = 0x00200000, + DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS = 0x00400000, + DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = 0x00800000 + } drsuapi_DsReplicaSyncOptions; + typedef struct { drsuapi_DsReplicaSyncRequest1Info *info; GUID guid1; astring *string1; - uint32 unknown1; + drsuapi_DsReplicaSyncOptions options; } drsuapi_DsReplicaSyncRequest1; typedef [switch_type(int32)] union { @@ -138,23 +166,95 @@ interface drsuapi ); /*****************/ - /* Function 0x03 */ - WERROR DRSUAPI_GET_NC_CHANGES(); + /* Function 0x03 */ + typedef struct { + hyper usn1; + hyper usn2; + hyper usn3; + } drsuapi_DsGetNCChangesUsnTriple; + + typedef struct { + GUID guid1; + GUID guid2; + uint32 unknown1[20]; + drsuapi_DsReplicaSyncRequest1Info sync_req_info1; + drsuapi_DsGetNCChangesUsnTriple usn; + } drsuapi_DsGetNCChangesRequest8; + + typedef [switch_type(int32)] union { + [case(8)] drsuapi_DsGetNCChangesRequest8 req8; + } drsuapi_DsGetNCChangesRequest; + + typedef struct { + } drsuapi_DsGetNCChangesCtr7; + + typedef [switch_type(int32)] union { + [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; + } drsuapi_DsGetNCChangesCtr; + + WERROR drsuapi_DsGetNCChanges( + [in,ref] policy_handle *bind_handle, + [in,out] int32 level, + [in,switch_is(level)] drsuapi_DsGetNCChangesRequest req, + [out,switch_is(level)] drsuapi_DsGetNCChangesCtr ctr + ); /*****************/ /* Function 0x04 */ - WERROR DRSUAPI_UPDATE_REFS(); + typedef bitmap { + DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE = 0x00000002, + DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE = 0x00000004, + DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE = 0x00000008, + DRSUAPI_DS_REPLICA_UPDATE_0x00000010 = 0x00000010 + } drsuapi_DsReplicaUpdateRefsOptions; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + GUID dest_dsa_guid; + drsuapi_DsReplicaUpdateRefsOptions options; + drsuapi_DsReplicaSyncRequest1Info sync_req_info1; + ascstr dest_dsa_dns_name; + } drsuapi_DsReplicaUpdateRefsRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1; + } drsuapi_DsReplicaUpdateRefsRequest; + + WERROR drsuapi_DsReplicaUpdateRefs( + [in,ref] policy_handle *bind_handle, + [in] int32 level, + [in,switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req + ); /*****************/ /* Function 0x05 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002 + /* TODO ... */ + } drsuapi_DsReplicaAddOptions; + WERROR DRSUAPI_REPLICA_ADD(); /*****************/ /* Function 0x06 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_DELETE_WRITEABLE = 0x00000002 + /* TODO ... */ + } drsuapi_DsReplicaDeleteOptions; + WERROR DRSUAPI_REPLICA_DEL(); /*****************/ /* Function 0x07 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE = 0x00000002 + } drsuapi_DsReplicaModifyOptions; + WERROR DRSUAPI_REPLICA_MODIFY(); /*****************/ @@ -369,7 +469,7 @@ interface drsuapi /*****************/ /* Function 0x11 */ - WERROR DRSUAPI_ADD_ENTRY(); + WERROR drsuapi_DsAddEntry(); /*****************/ /* Function 0x12 */ @@ -486,12 +586,29 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaKccDsaFailure array[]; } drsuapi_DsReplicaKccDsaFailuresCtr; + typedef enum { + DRSUAPI_DS_REPLICA_OP_TYPE_SYNC = 0, + DRSUAPI_DS_REPLICA_OP_TYPE_ADD = 1, + DRSUAPI_DS_REPLICA_OP_TYPE_DELETE = 2, + DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY = 3, + DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS = 4 + } drsuapi_DsReplicaOpType; + + typedef [switch_type(drsuapi_DsReplicaOpType)] union { + [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] drsuapi_DsReplicaSyncOptions sync; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] drsuapi_DsReplicaAddOptions add; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions delete; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] drsuapi_DsReplicaModifyOptions modify; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] drsuapi_DsReplicaUpdateRefsOptions update_refs; + [default] uint32 unknown; + } drsuapi_DsRplicaOpOptions; + typedef struct { NTTIME operation_start; uint32 serial_num; /* unique till reboot */ uint32 priority; - uint16 operation_type; - uint32 options_flags; + drsuapi_DsReplicaOpType operation_type; + [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options; unistr *nc_dn; unistr *remote_dsa_obj_dn; unistr *remote_dsa_address; -- cgit From 768f82cbc6a7b7eda3a0517a5438d08b89f07855 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 12 Mar 2005 09:25:39 +0000 Subject: r5766: get some more DsGetNCChanges stuff parsing correct metze (This used to be commit 1a4560997d99f2401903f8e466208c001d3ab6c1) --- source4/librpc/idl/drsuapi.idl | 99 +++++++++++++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 16 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 8a6a96dcac..21a364180a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -173,22 +173,102 @@ interface drsuapi hyper usn3; } drsuapi_DsGetNCChangesUsnTriple; + typedef struct { + GUID source_dsa_invocation_id; + hyper highest_usn; + } drsuapi_DsReplicaCoursor; + + typedef struct { + uint32 u1; + uint32 u2; + [range(0,0x100000)] uint32 count; + uint32 u3; + [size_is(count)] drsuapi_DsReplicaCoursor array[]; + } drsuapi_DsReplicaCoursor05Ctr; + typedef struct { GUID guid1; GUID guid2; - uint32 unknown1[20]; - drsuapi_DsReplicaSyncRequest1Info sync_req_info1; - drsuapi_DsGetNCChangesUsnTriple usn; + [ref] drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + drsuapi_DsGetNCChangesUsnTriple usn1; + drsuapi_DsReplicaCoursor05Ctr *coursor; + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + uint32 unknown4; + hyper h1; + } drsuapi_DsGetNCChangesRequest5; + + typedef [flag(NDR_PAHEX)] struct { + [range(0,10000)] uint32 length; + [size_is(length)] uint8 *byte_array[]; + } drsuapi_DsGetNCChangesRequest_Ctr14; + + typedef struct { + uint32 unknown1; + drsuapi_DsGetNCChangesRequest_Ctr14 data; + } drsuapi_DsGetNCChangesRequest_Ctr13; + + typedef struct { + [range(0,0x100000)] uint32 count; + [size_is(count)] drsuapi_DsGetNCChangesRequest_Ctr13 *array[]; + } drsuapi_DsGetNCChangesRequest_Ctr12; + + typedef struct { + GUID guid1; + GUID guid2; + [ref] drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + drsuapi_DsGetNCChangesUsnTriple usn1; + drsuapi_DsReplicaCoursor05Ctr *coursor; + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + uint32 unknown4; + hyper h1; + uint32 unique_ptr1; + uint32 unique_ptr2; + drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; } drsuapi_DsGetNCChangesRequest8; typedef [switch_type(int32)] union { + [case(5)] drsuapi_DsGetNCChangesRequest5 req5; [case(8)] drsuapi_DsGetNCChangesRequest8 req8; } drsuapi_DsGetNCChangesRequest; + typedef struct { + drsuapi_DsReplicaCoursor coursor; + NTTIME_1sec time1; + } drsuapi_DsReplicaCoursorEx; + + typedef struct { + uint32 u1; + uint32 u2; + [range(0,0x100000)] uint32 count; + uint32 u3; + [size_is(count)] drsuapi_DsReplicaCoursorEx array[]; + } drsuapi_DsReplicaCoursorEx05Ctr; + + typedef struct { + GUID guid1; + GUID guid2; + drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + drsuapi_DsGetNCChangesUsnTriple usn1; + drsuapi_DsGetNCChangesUsnTriple usn2; + drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; + drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; + uint32 u1[3]; + uint32 ptr1; + uint32 u2[3]; + uint32 len1; + uint32 array_ptr1; + uint32 u3; + } drsuapi_DsGetNCChangesCtr6; + typedef struct { } drsuapi_DsGetNCChangesCtr7; typedef [switch_type(int32)] union { + [case(6)] drsuapi_DsGetNCChangesCtr6 ctr6; [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; } drsuapi_DsGetNCChangesCtr; @@ -546,11 +626,6 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaNeighbour array[]; } drsuapi_DsReplicaNeighbourCtr; - typedef struct { - GUID source_dsa_invocation_id; - hyper highest_usn; - } drsuapi_DsReplicaCoursor; - typedef struct { uint32 count; uint32 reserved; @@ -720,14 +795,6 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaConnection04 array[]; } drsuapi_DsReplicaConnection04Ctr; - typedef struct { - uint32 u1; - uint32 u2; - [range(0,0x100000)] uint32 count; - uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursor array[]; - } drsuapi_DsReplicaCoursor05Ctr; - typedef struct { unistr *str1; uint32 u1; -- cgit From cead12981f86f8c30daf50995d61ff3af9439898 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 Mar 2005 14:42:09 +0000 Subject: r5799: more DsGetNCChanges updates, I'm starting to understand it... also add a really simple torture test for DsGetNCChanges metze (This used to be commit bcde67a7eff9ad82919e90fd64c02a17610c6f0e) --- source4/librpc/idl/drsuapi.idl | 120 ++++++++++++++++++++++++++++++++++------- 1 file changed, 101 insertions(+), 19 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 21a364180a..c4b94ba850 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -6,7 +6,8 @@ endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), authservice("ldap"), helpstring("Active Directory Replication"), - pointer_default(unique) + pointer_default(unique), + depends(security) ] interface drsuapi { @@ -114,12 +115,12 @@ interface drsuapi /*****************/ /* Function 0x02 */ typedef [gensize,flag(NDR_PAHEX)] struct { - [value(ndr_size_drsuapi_DsReplicaSyncRequest1Info(r, ndr->flags)-4)] uint32 __ndr_size; - uint32 unknown1; - GUID guid1; - uint8 byte_array[28]; - [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string nc_dn; - } drsuapi_DsReplicaSyncRequest1Info; + [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; + [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; + GUID guid; + [subcontext_size(28),subcontext(0)] dom_sid sid; + [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; + } drsuapi_DsReplicaObjectIdentifier; typedef bitmap { DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, @@ -149,7 +150,7 @@ interface drsuapi } drsuapi_DsReplicaSyncOptions; typedef struct { - drsuapi_DsReplicaSyncRequest1Info *info; + drsuapi_DsReplicaObjectIdentifier *naming_context; GUID guid1; astring *string1; drsuapi_DsReplicaSyncOptions options; @@ -189,7 +190,7 @@ interface drsuapi typedef struct { GUID guid1; GUID guid2; - [ref] drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsGetNCChangesUsnTriple usn1; drsuapi_DsReplicaCoursor05Ctr *coursor; uint32 unknown1; @@ -217,7 +218,7 @@ interface drsuapi typedef struct { GUID guid1; GUID guid2; - [ref] drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsGetNCChangesUsnTriple usn1; drsuapi_DsReplicaCoursor05Ctr *coursor; uint32 unknown1; @@ -248,10 +249,77 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaCoursorEx array[]; } drsuapi_DsReplicaCoursorEx05Ctr; + typedef struct { + uint32 version; + NTTIME_1sec time; + GUID guid; + hyper usn; + } drsuapi_DsReplicaMetaData; + + typedef struct { + [range(0,1048576)] uint32 count; + [size_is(count)] drsuapi_DsReplicaMetaData meta_data[]; + } drsuapi_DsReplicaMetaDataCtr; + + typedef [flag(NDR_PAHEX)] struct { + [range(0,10485760)] uint32 length; + DATA_BLOB *data; + } drsuapi_DsReplicaAttributeValue; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsReplicaAttributeValue *values[]; + } drsuapi_DsReplicaAttributeValueCtr; + + typedef [v1_enum] enum { + DRSUAPI_ATTR_objectClass = 0x00000000, + DRSUAPI_ATTR_description = 0x0000000d, + DRSUAPI_ATTR_ntSecurityDescriptor = 0x00020119, + DRSUAPI_ATTR_objectSid = 0x00090092 + } drsuapi_DsAttributeId; + + typedef [flag(NDR_PAHEX)] struct { + drsuapi_DsAttributeId attid; + drsuapi_DsReplicaAttributeValueCtr value_ctr; + } drsuapi_DsReplicaAttribute; + + typedef struct { + [range(0,1048576)] uint32 num_attributes; + [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes[]; + } drsuapi_DsReplicaAttributeCtr; + + typedef struct { + drsuapi_DsReplicaObjectIdentifier *identifier; + uint32 unknown1; + drsuapi_DsReplicaAttributeCtr attribute_ctr; + } drsuapi_DsReplicaObject; + + typedef struct { + /* TODO: fix ndr_print for next_info! */ + [print_option(linked_list_next)] drsuapi_DsGetNCChangesInfo1 *next; + drsuapi_DsReplicaObject object; + uint32 unknown1; + GUID *guid; + drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; + } drsuapi_DsGetNCChangesInfo1; + + typedef struct { + GUID guid1; + GUID guid2; + drsuapi_DsReplicaObjectIdentifier *naming_context; + drsuapi_DsGetNCChangesUsnTriple usn1; + drsuapi_DsGetNCChangesUsnTriple usn2; + drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; + drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; + uint32 u1[3]; + drsuapi_DsGetNCChangesInfo1 *info1; + uint32 u2; + } drsuapi_DsGetNCChangesCtr1; + typedef struct { GUID guid1; GUID guid2; - drsuapi_DsReplicaSyncRequest1Info *sync_req_info1; + drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsGetNCChangesUsnTriple usn1; drsuapi_DsGetNCChangesUsnTriple usn2; drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; @@ -265,9 +333,19 @@ interface drsuapi } drsuapi_DsGetNCChangesCtr6; typedef struct { + uint32 u1;/* decompressed_length ? */ + uint32 compressed_length; + DATA_BLOB *compressed; + } drsuapi_DsGetNCChangesCtr7CompressedInfo; + + typedef struct { + uint32 u1; + uint16 u2; /* enum */ + drsuapi_DsGetNCChangesCtr7CompressedInfo info; } drsuapi_DsGetNCChangesCtr7; typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1; [case(6)] drsuapi_DsGetNCChangesCtr6 ctr6; [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; } drsuapi_DsGetNCChangesCtr; @@ -290,12 +368,10 @@ interface drsuapi } drsuapi_DsReplicaUpdateRefsOptions; typedef struct { - uint32 unknown1; - uint32 unknown2; + [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; + [ref] ascstr *dest_dsa_dns_name; GUID dest_dsa_guid; drsuapi_DsReplicaUpdateRefsOptions options; - drsuapi_DsReplicaSyncRequest1Info sync_req_info1; - ascstr dest_dsa_dns_name; } drsuapi_DsReplicaUpdateRefsRequest1; typedef [switch_type(int32)] union { @@ -534,10 +610,16 @@ interface drsuapi [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; } drsuapi_DsGetDCInfoCtr01; - typedef [switch_type(int32)] union { - [case(1)] drsuapi_DsGetDCInfoCtr1 ctr1; - [case(2)] drsuapi_DsGetDCInfoCtr2 ctr2; - [case(-1)] drsuapi_DsGetDCInfoCtr01 ctr01; + typedef [v1_enum] enum { + DRSUAPI_DC_INFO_CTR_1 = 1, + DRSUAPI_DC_INFO_CTR_2 = 2, + DRSUAPI_DC_INFO_CTR_01 = -1 + } drsuapi_DsGetDCInfoCtrLevels; + + typedef [switch_type(int32)] union { + [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; + [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; + [case(DRSUAPI_DC_INFO_CTR_01)] drsuapi_DsGetDCInfoCtr01 ctr01; } drsuapi_DsGetDCInfoCtr; WERROR drsuapi_DsGetDomainControllerInfo( -- cgit From 55546176c62ef53c1c5157e765993afadf4bc79d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 Mar 2005 16:05:43 +0000 Subject: r5800: fix recursiv printing in ndr_print_DsGetNCChangesInfo1() metze (This used to be commit 1084ad4bfce6bc20537f5bfccb5a25b60f503b32) --- source4/librpc/idl/drsuapi.idl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c4b94ba850..1329332d6b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -256,7 +256,7 @@ interface drsuapi hyper usn; } drsuapi_DsReplicaMetaData; - typedef struct { + typedef [public] struct { [range(0,1048576)] uint32 count; [size_is(count)] drsuapi_DsReplicaMetaData meta_data[]; } drsuapi_DsReplicaMetaDataCtr; @@ -288,15 +288,14 @@ interface drsuapi [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes[]; } drsuapi_DsReplicaAttributeCtr; - typedef struct { + typedef [public] struct { drsuapi_DsReplicaObjectIdentifier *identifier; uint32 unknown1; drsuapi_DsReplicaAttributeCtr attribute_ctr; } drsuapi_DsReplicaObject; - typedef struct { - /* TODO: fix ndr_print for next_info! */ - [print_option(linked_list_next)] drsuapi_DsGetNCChangesInfo1 *next; + typedef [noprint] struct { + drsuapi_DsGetNCChangesInfo1 *next; drsuapi_DsReplicaObject object; uint32 unknown1; GUID *guid; -- cgit From d7b5a565efac8bae48acf57e5d7fc53c3173240f Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 16 Mar 2005 09:25:52 +0000 Subject: r5828: add some idl for DsAddEntry() metze (This used to be commit 3e6ec811288d74921bf3e393213e75d928156772) --- source4/librpc/idl/drsuapi.idl | 55 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 5 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 1329332d6b..dbeaa3ccab 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -114,7 +114,7 @@ interface drsuapi /*****************/ /* Function 0x02 */ - typedef [gensize,flag(NDR_PAHEX)] struct { + typedef [gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; @@ -295,12 +295,12 @@ interface drsuapi } drsuapi_DsReplicaObject; typedef [noprint] struct { - drsuapi_DsGetNCChangesInfo1 *next; + drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; uint32 unknown1; GUID *guid; drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; - } drsuapi_DsGetNCChangesInfo1; + } drsuapi_DsReplicaObjectListItemEx; typedef struct { GUID guid1; @@ -311,7 +311,7 @@ interface drsuapi drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 u1[3]; - drsuapi_DsGetNCChangesInfo1 *info1; + drsuapi_DsReplicaObjectListItemEx *first_object; uint32 u2; } drsuapi_DsGetNCChangesCtr1; @@ -630,7 +630,52 @@ interface drsuapi /*****************/ /* Function 0x11 */ - WERROR drsuapi_DsAddEntry(); + typedef [noprint] struct { + drsuapi_DsReplicaObjectListItem *next_object; + drsuapi_DsReplicaObject object; + } drsuapi_DsReplicaObjectListItem; + + typedef struct { + drsuapi_DsReplicaObjectListItem first_object; + } drsuapi_DsAddEntryRequest2; + + typedef [switch_type(int32)] union { + [case(2)] drsuapi_DsAddEntryRequest2 req2; + } drsuapi_DsAddEntryRequest; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + } drsuapi_DsAddEntryCtr3Info1; + + typedef [switch_type(uint32)] union { + [case(1)] drsuapi_DsAddEntryCtr3Info1 info1; + } drsuapi_DsAddEntryCtr3Info; + + typedef struct { + GUID guid; + [subcontext_size(28),subcontext(0)] dom_sid sid; + } drsuapi_DsReplicaObjectIdentifier2; + + typedef struct { + drsuapi_DsReplicaObjectIdentifier *id; + uint32 level; + [switch_is(level)] drsuapi_DsAddEntryCtr3Info *info; + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects[]; + } drsuapi_DsAddEntryCtr3; + + typedef [switch_type(int32)] union { + [case(3)] drsuapi_DsAddEntryCtr3 ctr3; + } drsuapi_DsAddEntryCtr; + + WERROR drsuapi_DsAddEntry( + [in,ref] policy_handle *bind_handle, + [in,out] int32 level, + [in,switch_is(level)] drsuapi_DsAddEntryRequest req, + [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr + ); /*****************/ /* Function 0x12 */ -- cgit From c638a8380defc9afc713886f3290d581ac37995d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 16 Mar 2005 15:47:19 +0000 Subject: r5830: start to analyse the attribute values, depending on the attribute type metze (This used to be commit 63229b9503950847fbecd6ec22171d8c18d7ac91) --- source4/librpc/idl/drsuapi.idl | 183 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 163 insertions(+), 20 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index dbeaa3ccab..50706a1739 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -249,38 +249,169 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaCoursorEx array[]; } drsuapi_DsReplicaCoursorEx05Ctr; + typedef [v1_enum] enum { + DRSUAPI_OBJECTCLASS_top = 0x0 + } drsuapi_DsObjectClassId; + + typedef [v1_enum] enum { + DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, + DRSUAPI_ATTRIBUTE_description = 0x0000000d, + DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, + DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, + DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, + DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e + } drsuapi_DsAttributeId; + + /* Generic DATA_BLOB values */ typedef struct { - uint32 version; - NTTIME_1sec time; + [range(0,10485760)] uint32 length; + DATA_BLOB *data; + } drsuapi_DsAttributeValueDataBlob; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueDataBlob *values[]; + } drsuapi_DsAttributeValueCtrDataBlob; + + /* objectClass values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] drsuapi_DsObjectClassId *objectClassId; + } drsuapi_DsAttributeValueObjectClassId; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueObjectClassId *values[]; + } drsuapi_DsAttributeValueCtrObjectClassId; + + /* uint32 values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] uint32 *value; + } drsuapi_DsAttributeValueUINT32; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueUINT32 *values[]; + } drsuapi_DsAttributeValueCtrUINT32; + + /* UnicodeString values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] nstring *string; + } drsuapi_DsAttributeValueUnicodeString; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueUnicodeString *values[]; + } drsuapi_DsAttributeValueCtrUnicodeString; + + /* DN String values */ + typedef [gensize] struct { + [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)-4)] uint32 __ndr_size; + [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; - hyper usn; - } drsuapi_DsReplicaMetaData; + [subcontext_size(28),subcontext(0)] dom_sid sid; + [flag(STR_SIZE4|STR_CHARLEN)] string dn; + } drsuapi_DsReplicaObjectIdentifier3; - typedef [public] struct { - [range(0,1048576)] uint32 count; - [size_is(count)] drsuapi_DsReplicaMetaData meta_data[]; - } drsuapi_DsReplicaMetaDataCtr; + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object; + } drsuapi_DsAttributeValueDNString; - typedef [flag(NDR_PAHEX)] struct { + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueDNString *values[]; + } drsuapi_DsAttributeValueCtrDNString; + + /* GUID values */ + typedef struct { [range(0,10485760)] uint32 length; - DATA_BLOB *data; - } drsuapi_DsReplicaAttributeValue; + [subcontext(4)] GUID *guid; + } drsuapi_DsAttributeValueGUID; typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsReplicaAttributeValue *values[]; - } drsuapi_DsReplicaAttributeValueCtr; + [size_is(num_values)] drsuapi_DsAttributeValueGUID *values[]; + } drsuapi_DsAttributeValueCtrGUID; - typedef [v1_enum] enum { - DRSUAPI_ATTR_objectClass = 0x00000000, - DRSUAPI_ATTR_description = 0x0000000d, - DRSUAPI_ATTR_ntSecurityDescriptor = 0x00020119, - DRSUAPI_ATTR_objectSid = 0x00090092 - } drsuapi_DsAttributeId; + /* SID values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] dom_sid *sid; + } drsuapi_DsAttributeValueSID; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueSID *values[]; + } drsuapi_DsAttributeValueCtrSID; + + /* SecurityDescriptor values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] security_descriptor *sd; + } drsuapi_DsAttributeValueSecurityDescriptor; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueSecurityDescriptor *values[]; + } drsuapi_DsAttributeValueCtrSecurityDescriptor; + + /* NTTIME_1sec values */ + typedef struct { + [range(0,10485760)] uint32 length; + [subcontext(4)] NTTIME_1sec *time; + } drsuapi_DsAttributeValueNTTIME_1sec; + + typedef struct { + [range(0,10485760)] uint32 num_values; + [size_is(num_values)] drsuapi_DsAttributeValueNTTIME_1sec *values[]; + } drsuapi_DsAttributeValueCtrNTTIME_1sec; + + typedef [nodiscriminant] union { + [case(DRSUAPI_ATTRIBUTE_objectClass)] drsuapi_DsAttributeValueCtrObjectClassId object_class_id; + + /* UINT32 */ + [case(0x00020001)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(0x00090177)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(0x000905b3)] drsuapi_DsAttributeValueCtrUINT32 uint32; + + /* GUID */ + [case(DRSUAPI_ATTRIBUTE_invocationId)] drsuapi_DsAttributeValueCtrGUID guid; + + /* SID */ + [case(DRSUAPI_ATTRIBUTE_objectSid)] drsuapi_DsAttributeValueCtrSID sid; + + /* SecurityDescriptor */ + /* we can't parse some ads specific security_descriptors yet + [case(DRSUAPI_ATTRIBUTE_ntSecurityDescriptor)] drsuapi_DsAttributeValueCtrSecurityDescriptor security_descriptor; + */ + + /* UnicodeString */ + [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(0x00090001)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(0x0009037b)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + + /* DN String */ + [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x0002000e)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x00020024)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x0009071c)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x0009072c)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x0009026a)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x00090203)] drsuapi_DsAttributeValueCtrDNString dn_string; + + /* NTTIME_1sec */ + [case(0x00020002)] drsuapi_DsAttributeValueCtrNTTIME_1sec nttime_1sec; + + /* the default is the DATA_BLOB */ + [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; + } drsuapi_DsReplicaAttributeValueCtr; typedef [flag(NDR_PAHEX)] struct { drsuapi_DsAttributeId attid; - drsuapi_DsReplicaAttributeValueCtr value_ctr; + [switch_is(attid)] drsuapi_DsReplicaAttributeValueCtr value_ctr; } drsuapi_DsReplicaAttribute; typedef struct { @@ -294,6 +425,18 @@ interface drsuapi drsuapi_DsReplicaAttributeCtr attribute_ctr; } drsuapi_DsReplicaObject; + typedef struct { + uint32 version; + NTTIME_1sec time; + GUID guid; + hyper usn; + } drsuapi_DsReplicaMetaData; + + typedef [public] struct { + [range(0,1048576)] uint32 count; + [size_is(count)] drsuapi_DsReplicaMetaData meta_data[]; + } drsuapi_DsReplicaMetaDataCtr; + typedef [noprint] struct { drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; -- cgit From 85e0b90cf3de8f9cff68c0fdadd6c9b315d48d37 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 17 Mar 2005 04:24:35 +0000 Subject: r5850: enable parsing of revision 4 security acl's metze (This used to be commit 2a6a075c7da2da7bb62fb42936252717bb9d0593) --- source4/librpc/idl/drsuapi.idl | 2 -- 1 file changed, 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 50706a1739..ab88fdfc51 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -384,9 +384,7 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_objectSid)] drsuapi_DsAttributeValueCtrSID sid; /* SecurityDescriptor */ - /* we can't parse some ads specific security_descriptors yet [case(DRSUAPI_ATTRIBUTE_ntSecurityDescriptor)] drsuapi_DsAttributeValueCtrSecurityDescriptor security_descriptor; - */ /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; -- cgit From 1bb3e99d063332ac9d8af92cb3210465cfa66fb4 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 22 Mar 2005 14:49:11 +0000 Subject: r5949: give things more meaning, and reuse structs where it is possible to make things more clear metze (This used to be commit adefeeb4f362dba06cddacf6f58194ef1f967ec9) --- source4/librpc/idl/drsuapi.idl | 122 ++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 56 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index ab88fdfc51..789427222a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -122,7 +122,7 @@ interface drsuapi [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; } drsuapi_DsReplicaObjectIdentifier; - typedef bitmap { + typedef [public] bitmap { DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = 0x00000002, DRSUAPI_DS_REPLICA_SYNC_PERIODIC = 0x00000004, @@ -168,15 +168,15 @@ interface drsuapi /*****************/ /* Function 0x03 */ - typedef struct { - hyper usn1; - hyper usn2; - hyper usn3; - } drsuapi_DsGetNCChangesUsnTriple; + typedef [public] struct { + hyper tmp_highest_usn; /* updated after each object update */ + hyper reserved_usn; + hyper highest_usn; /* updated after a full replication cycle */ + } drsuapi_DsReplicaUsnCtr; - typedef struct { - GUID source_dsa_invocation_id; - hyper highest_usn; + typedef [public] struct { + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ + hyper highest_usn; /* updated after a full replication cycle */ } drsuapi_DsReplicaCoursor; typedef struct { @@ -184,15 +184,15 @@ interface drsuapi uint32 u2; [range(0,0x100000)] uint32 count; uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursor array[]; + [size_is(count)] drsuapi_DsReplicaCoursor coursors[]; } drsuapi_DsReplicaCoursor05Ctr; typedef struct { - GUID guid1; - GUID guid2; + GUID destination_dsa_guid; + GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsGetNCChangesUsnTriple usn1; - drsuapi_DsReplicaCoursor05Ctr *coursor; + drsuapi_DsReplicaUsnCtr replication_state; + drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector; uint32 unknown1; uint32 unknown2; uint32 unknown3; @@ -216,11 +216,11 @@ interface drsuapi } drsuapi_DsGetNCChangesRequest_Ctr12; typedef struct { - GUID guid1; - GUID guid2; + GUID destination_dsa_guid; + GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsGetNCChangesUsnTriple usn1; - drsuapi_DsReplicaCoursor05Ctr *coursor; + drsuapi_DsReplicaUsnCtr replication_state; + drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector; uint32 unknown1; uint32 unknown2; uint32 unknown3; @@ -236,24 +236,25 @@ interface drsuapi [case(8)] drsuapi_DsGetNCChangesRequest8 req8; } drsuapi_DsGetNCChangesRequest; - typedef struct { - drsuapi_DsReplicaCoursor coursor; - NTTIME_1sec time1; - } drsuapi_DsReplicaCoursorEx; + typedef [public] struct { + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ + hyper highest_usn; /* updated after a full replication cycle */ + NTTIME last_sync_success; + } drsuapi_DsReplicaCoursor2; typedef struct { uint32 u1; uint32 u2; [range(0,0x100000)] uint32 count; uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursorEx array[]; - } drsuapi_DsReplicaCoursorEx05Ctr; + [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; + } drsuapi_DsReplicaCoursor2Ctr2; typedef [v1_enum] enum { DRSUAPI_OBJECTCLASS_top = 0x0 } drsuapi_DsObjectClassId; - typedef [v1_enum] enum { + typedef [v1_enum,public] enum { DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, DRSUAPI_ATTRIBUTE_description = 0x0000000d, DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, @@ -374,6 +375,8 @@ interface drsuapi /* UINT32 */ [case(0x00020001)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(0x0002004c)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(0x000200a9)] drsuapi_DsAttributeValueCtrUINT32 uint32; [case(0x00090177)] drsuapi_DsAttributeValueCtrUINT32 uint32; [case(0x000905b3)] drsuapi_DsAttributeValueCtrUINT32 uint32; @@ -389,12 +392,14 @@ interface drsuapi /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(0x00090001)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(0x000900dd)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(0x0009037b)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; /* DN String */ [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0002000e)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x00020024)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x00090171)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0009071c)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0009072c)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0009026a)] drsuapi_DsAttributeValueCtrDNString dn_string; @@ -425,9 +430,9 @@ interface drsuapi typedef struct { uint32 version; - NTTIME_1sec time; - GUID guid; - hyper usn; + NTTIME_1sec orginating_time; + GUID orginating_invocation_id; + hyper orginating_usn; } drsuapi_DsReplicaMetaData; typedef [public] struct { @@ -439,7 +444,7 @@ interface drsuapi drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; uint32 unknown1; - GUID *guid; + GUID *parent_object_guid; drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; } drsuapi_DsReplicaObjectListItemEx; @@ -447,45 +452,56 @@ interface drsuapi GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsGetNCChangesUsnTriple usn1; - drsuapi_DsGetNCChangesUsnTriple usn2; - drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; + drsuapi_DsReplicaUsnCtr old_replication_state; + drsuapi_DsReplicaUsnCtr new_replication_state; + drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; - uint32 u1[3]; + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; drsuapi_DsReplicaObjectListItemEx *first_object; - uint32 u2; + uint32 unknown4; } drsuapi_DsGetNCChangesCtr1; + typedef struct { + uint32 unknown1;/* decompressed_length ? */ + uint32 compressed_length; + DATA_BLOB *compressed; + } drsuapi_DsGetNCChangesCompressedInfo; + + typedef struct { + drsuapi_DsGetNCChangesCompressedInfo info; + } drsuapi_DsGetNCChangesCtr2; + typedef struct { GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsGetNCChangesUsnTriple usn1; - drsuapi_DsGetNCChangesUsnTriple usn2; - drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; + drsuapi_DsReplicaUsnCtr old_replication_state; + drsuapi_DsReplicaUsnCtr new_replication_state; + drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; - uint32 u1[3]; - uint32 ptr1; - uint32 u2[3]; + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + drsuapi_DsReplicaObjectListItemEx *first_object; + uint32 unknown4; + uint32 unknown5; + uint32 unknown6; uint32 len1; uint32 array_ptr1; - uint32 u3; + uint32 unknown7; } drsuapi_DsGetNCChangesCtr6; typedef struct { - uint32 u1;/* decompressed_length ? */ - uint32 compressed_length; - DATA_BLOB *compressed; - } drsuapi_DsGetNCChangesCtr7CompressedInfo; - - typedef struct { - uint32 u1; - uint16 u2; /* enum */ - drsuapi_DsGetNCChangesCtr7CompressedInfo info; + uint32 unknown1; + uint16 unknown2; /* enum */ + drsuapi_DsGetNCChangesCompressedInfo info; } drsuapi_DsGetNCChangesCtr7; typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1; + [case(2)] drsuapi_DsGetNCChangesCtr2 ctr2; [case(6)] drsuapi_DsGetNCChangesCtr6 ctr6; [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; } drsuapi_DsGetNCChangesCtr; @@ -984,12 +1000,6 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; } drsuapi_DsReplicaAttrValMetaDataCtr; - typedef struct { - GUID source_dsa_invocation_id; - hyper highest_usn; - NTTIME last_sync_success; - } drsuapi_DsReplicaCoursor2; - typedef struct { uint32 count; int32 enumeration_context; -- cgit From 01ab1128cedfe3381ba579445e6714152e29add8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 23 Mar 2005 18:54:06 +0000 Subject: r5998: I was wrong with the highwater mark... I think I now understand how it works:-) metze (This used to be commit f8add2e66a56896d9bb18991091e1b17c29910b1) --- source4/librpc/idl/drsuapi.idl | 49 +++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 15 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 789427222a..4144ced563 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -172,7 +172,7 @@ interface drsuapi hyper tmp_highest_usn; /* updated after each object update */ hyper reserved_usn; hyper highest_usn; /* updated after a full replication cycle */ - } drsuapi_DsReplicaUsnCtr; + } drsuapi_DsReplicaHighWaterMark; typedef [public] struct { GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -187,13 +187,31 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaCoursor coursors[]; } drsuapi_DsReplicaCoursor05Ctr; + typedef [public] bitmap { + DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010, + DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP = 0x00000020, + DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS = 0x00000040, + DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT = 0x00000080, + DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC = 0x00000200, + DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS = 0x00000800, + DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS = 0x00010000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET = 0x00020000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED = 0x00200000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED = 0x01000000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS = 0x04000000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC = 0x08000000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES = 0x10000000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS = 0x20000000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000 + } drsuapi_DsReplicaNeighbourFlags; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsReplicaUsnCtr replication_state; - drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector; - uint32 unknown1; + drsuapi_DsReplicaHighWaterMark highwatermark; + drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 unknown2; uint32 unknown3; uint32 unknown4; @@ -219,9 +237,9 @@ interface drsuapi GUID destination_dsa_guid; GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsReplicaUsnCtr replication_state; - drsuapi_DsReplicaCoursor05Ctr *highwatermark_vector; - uint32 unknown1; + drsuapi_DsReplicaHighWaterMark highwatermark; + drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 unknown2; uint32 unknown3; uint32 unknown4; @@ -448,17 +466,18 @@ interface drsuapi drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; } drsuapi_DsReplicaObjectListItemEx; - typedef struct { + typedef [gensize] struct { GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsReplicaUsnCtr old_replication_state; - drsuapi_DsReplicaUsnCtr new_replication_state; + drsuapi_DsReplicaHighWaterMark old_highwatermark; + drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 unknown1; - uint32 unknown2; - uint32 unknown3; + uint32 object_count; + /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ + [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; uint32 unknown4; } drsuapi_DsGetNCChangesCtr1; @@ -477,8 +496,8 @@ interface drsuapi GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsReplicaUsnCtr old_replication_state; - drsuapi_DsReplicaUsnCtr new_replication_state; + drsuapi_DsReplicaHighWaterMark old_highwatermark; + drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 unknown1; @@ -889,7 +908,7 @@ interface drsuapi unistr *source_dsa_obj_dn; unistr *source_dsa_address; unistr *transport_obj_dn; - uint32 replica_flags; + drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 reserved; GUID naming_context_obj_guid; GUID source_dsa_obj_guid; -- cgit From 3ec2c008b83b71b9f7aa7e7bd33a94c9af39dbe9 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 23 Mar 2005 19:24:11 +0000 Subject: r6000: add some notes about the cases where compression (or what ever this is) is used, in the reply. metze (This used to be commit 618dadb7ef092af0f2c13c2e67874041f54f4e98) --- source4/librpc/idl/drsuapi.idl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4144ced563..330165830c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -188,6 +188,11 @@ interface drsuapi } drsuapi_DsReplicaCoursor05Ctr; typedef [public] bitmap { + /* the _WRITEABLE flag seems to indicate a replication with all attributes, + * and I'm currently always on error when it's set, but w2k and w2k3 uses it + * in the dc join + * --metze + */ DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010, DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP = 0x00000020, DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS = 0x00000040, @@ -200,6 +205,15 @@ interface drsuapi DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED = 0x01000000, DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS = 0x04000000, DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC = 0x08000000, + /* + * the following NOTE applies to DsGetNCChangesRequest5: + * - the data is only compressed when 10 or more objects are replicated + * - but there could also be a size limit of 35 KBytes or something like that + * - the reply is DsGetNCChangesCtr2 + * - maybe the same applies to DsGetNCChangesRequest8... + * + * --metze + */ DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES = 0x10000000, DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS = 0x20000000, DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000 -- cgit From 5a9ceee7a524293c67d4c32edde9da32a877ecce Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 25 Mar 2005 13:40:17 +0000 Subject: r6061: add start of compression support in our rpc code this is not complete cuurently... but I want other people to test it and help me on finishing it. (try to change the #if 0 in torture/rpc/drsuapi.c into #if 1) metze (This used to be commit 335adef37082a78e0426decb715629bd778e6582) --- source4/librpc/idl/drsuapi.idl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 330165830c..1b81dd6297 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -283,7 +283,8 @@ interface drsuapi } drsuapi_DsReplicaCoursor2Ctr2; typedef [v1_enum] enum { - DRSUAPI_OBJECTCLASS_top = 0x0 + DRSUAPI_OBJECTCLASS_top = 0x00010000, + DRSUAPI_OBJECTCLASS_test = 0x00000000 } drsuapi_DsObjectClassId; typedef [v1_enum,public] enum { @@ -497,9 +498,10 @@ interface drsuapi } drsuapi_DsGetNCChangesCtr1; typedef struct { - uint32 unknown1;/* decompressed_length ? */ + uint32 decompressed_length; uint32 compressed_length; - DATA_BLOB *compressed; + [subcontext(4),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; + /*[subcontext(4),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1;*/ } drsuapi_DsGetNCChangesCompressedInfo; typedef struct { -- cgit From dfbd1752a1e8d3d8f40ee1986558be1ae3a2bc74 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 29 Mar 2005 13:07:20 +0000 Subject: r6115: don't try to decompress level 7 buffers yet metze (This used to be commit bbc0f6c5525b03deb9374fd96cb22cff4d3fb2e1) --- source4/librpc/idl/drsuapi.idl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 1b81dd6297..c11c5f5e0d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -500,10 +500,16 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; - /*[subcontext(4),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1;*/ + [subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; + /*[subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1;*/ } drsuapi_DsGetNCChangesCompressedInfo; + typedef struct { + uint32 decompressed_length; + uint32 compressed_length; + [subcontext(4),subcontext_size(r->compressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; + } drsuapi_DsGetNCChangesCompressedInfo_Test; + typedef struct { drsuapi_DsGetNCChangesCompressedInfo info; } drsuapi_DsGetNCChangesCtr2; @@ -531,7 +537,7 @@ interface drsuapi typedef struct { uint32 unknown1; uint16 unknown2; /* enum */ - drsuapi_DsGetNCChangesCompressedInfo info; + drsuapi_DsGetNCChangesCompressedInfo_Test info; } drsuapi_DsGetNCChangesCtr7; typedef [switch_type(int32)] union { -- cgit From e6772edd4bb483eb328fe721cefd2032f70deebf Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 30 Mar 2005 11:26:02 +0000 Subject: r6131: decompression of DsGetNCChanges level 2 responses works now (and the push side isn't used currently...) metze (This used to be commit 2d121c84312723ef6a7a3250a204efa8488f6303) --- source4/librpc/idl/drsuapi.idl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c11c5f5e0d..2f01250ed6 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -500,8 +500,7 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; - /*[subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_ZLIB,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1;*/ + [subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1; } drsuapi_DsGetNCChangesCompressedInfo; typedef struct { -- cgit From 2d0349614c516ce63022c50ccb71bb76d04abb1c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 30 Mar 2005 15:07:14 +0000 Subject: r6135: - make use of the new dom_sid28 type (this fixes parsing of w2k blob, which some times have random gargabe data in the sid buffer) - make the names of the DsReplicaCoursor*Ctr* 's more consistent and fix DsGetNCchangesCtr6 parsing metze (This used to be commit 75e427dca9f6b129ead100f7265794189f257c67) --- source4/librpc/idl/drsuapi.idl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 2f01250ed6..94ec5bf1bc 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -116,9 +116,9 @@ interface drsuapi /* Function 0x02 */ typedef [gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; - [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; + /*[value(ndr_length_dom_sid(&r->sid))]*/ uint32 __ndr_size_sid; GUID guid; - [subcontext_size(28),subcontext(0)] dom_sid sid; + dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; } drsuapi_DsReplicaObjectIdentifier; @@ -185,7 +185,7 @@ interface drsuapi [range(0,0x100000)] uint32 count; uint32 u3; [size_is(count)] drsuapi_DsReplicaCoursor coursors[]; - } drsuapi_DsReplicaCoursor05Ctr; + } drsuapi_DsReplicaCoursorCtrEx; typedef [public] bitmap { /* the _WRITEABLE flag seems to indicate a replication with all attributes, @@ -224,7 +224,7 @@ interface drsuapi GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; - drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 unknown2; uint32 unknown3; @@ -252,7 +252,7 @@ interface drsuapi GUID source_dsa_guid; [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; - drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 unknown2; uint32 unknown3; @@ -280,7 +280,7 @@ interface drsuapi [range(0,0x100000)] uint32 count; uint32 u3; [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; - } drsuapi_DsReplicaCoursor2Ctr2; + } drsuapi_DsReplicaCoursor2CtrEx; typedef [v1_enum] enum { DRSUAPI_OBJECTCLASS_top = 0x00010000, @@ -345,7 +345,7 @@ interface drsuapi [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)-4)] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; - [subcontext_size(28),subcontext(0)] dom_sid sid; + dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; } drsuapi_DsReplicaObjectIdentifier3; @@ -487,7 +487,7 @@ interface drsuapi drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; - drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 unknown1; uint32 object_count; @@ -519,7 +519,7 @@ interface drsuapi drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; - drsuapi_DsReplicaCoursor05Ctr *uptodateness_vector; + drsuapi_DsReplicaCoursor2CtrEx *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 unknown1; uint32 unknown2; @@ -852,7 +852,7 @@ interface drsuapi typedef struct { GUID guid; - [subcontext_size(28),subcontext(0)] dom_sid sid; + dom_sid28 sid; } drsuapi_DsReplicaObjectIdentifier2; typedef struct { @@ -1143,7 +1143,7 @@ interface drsuapi [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02; [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04; - [case(DRSUAPI_DS_REPLICA_INFO_CURSURS05)] drsuapi_DsReplicaCoursor05Ctr *coursors05; + [case(DRSUAPI_DS_REPLICA_INFO_CURSURS05)] drsuapi_DsReplicaCoursorCtrEx *coursors05; [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06; } drsuapi_DsReplicaInfo; -- cgit From 6f760656907efde6f96bed0e97380b7da7eb045f Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 13 May 2005 12:22:21 +0000 Subject: r6781: -add some comments on how attributes and objectClasses are identified in DRSUAPI -and some comments on what the attribute syntaxes matches what internal datatypes metze (This used to be commit 58c6887da48c2ebdec14529cb81e7589101f7aae) --- source4/librpc/idl/drsuapi.idl | 85 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 94ec5bf1bc..16b8da82b8 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -282,9 +282,90 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; } drsuapi_DsReplicaCoursor2CtrEx; + /* + * In DRSUAPI the objectClasses and attributes + * are identified by uint32 values, but in the schema + * they are identified by the governsID (objectClasses) + * and attributeID (attributes) + * + * the following table shows the mapping used between the two representations + * e.g. - objectClass 'nTDSDSA' has governsID: 1.2.840.113556.1.5.7000.47 + * and a UINT32-ID of '0x0017002F'. + * - so the OID 1.2.840.113556.1.5.7000.47 is splitted into a + * OID-prefix: 1.2.840.113556.1.5.7000 + * and a value: 47 => 0x2F + * - the mapping table gives a UINT32-prefix: 0x00170000 + * - and the UINT32-ID is 0x0017002F = 0x00170000 | 0x2F + * + * OID-prefix => UINT32-Id prefix + * + * 2.5.4.* => 0x00000000 (standard attributes RFC2256 core.schema) + * 2.5.6.* => 0x00010000 (standard object classes RFC2256 core.schema) + * 1.2.840.113556.1.2.* => 0x00020000 + * 1.2.840.113556.1.3.* => 0x00030000 + * 1.2.840.113556.1.4.* => 0x00090000 + * 1.2.840.113556.1.5.* => 0x000A0000 + * 2.16.840.1.113730.3.* => 0x00140000 + * 0.9.2342.19200300.100.1.* => 0x00150000 + * 2.16.840.1.113730.3.1.* => 0x00160000 + * 1.2.840.113556.1.5.7000.* => 0x00170000 + * 2.5.20.* => 0x001A0000 + * 2.16.840.1.113730.3.2.* => 0x001C0000 + * 1.3.6.1.4.1.250.1.* => 0x001D0000 + * 0.9.2342.19200300.100.4.* => 0x001F0000 + * + * 1.2.840.113549.1.9.* (unstructuredAddress,unstructuredName) + * 1.3.6.1.4.1.1466.101.119.2 (dynamicObject) + * 1.3.6.1.4.1.1466.101.119.3 (entryTTL) + * 2.5.18.* (createTimeStamp,modifyTimeStamp, SubSchema) + * 2.5.21.* (attrs for SubSchema) + * + * Here's a list of used 'attributeSyntax' OID's + * + * 2.5.5.1 => Object(DS-DN) string + * struct drsuapi_DsObjectIdentifier3 + * + * 2.5.5.2 => OID-string + * => mayContain, mustContain... also have this syntax but have string values + * + * 2.5.5.4 => String(Teletex) case-insensitive string with teletex charset + * + * 2.5.5.5 => String(IA5) case-sensitive string + * + * 2.5.5.6 => String(Numeric) + * => eg. internationalISDNNumber + * + * 2.5.5.7 => Object(DN-Binary) B::: + * => e.g. wellKnownObjects + * + * 2.5.5.8 => BOOL + * + * 2.5.5.9 => int32 + * + * 2.5.5.10 => DATA_BLOB + * => struct GUID + * + * 2.5.5.11 => LDAP timestring + * => NTTIME_1sec + * + * 2.5.5.12 => String(Unicode) case-insensitive string + * => 'standard strings' + * + * 2.5.5.13 => Object(Presentation-Address) string + * => used in objectClass applicationEntity + * + * 2.5.5.14 => Object(DN-String) S::: + * => not used + * + * 2.5.5.15 => ntSecurityDescriptor + * + * 2.5.5.16 => int64 + * + * 2.5.5.17 => dom_sid + */ + typedef [v1_enum] enum { - DRSUAPI_OBJECTCLASS_top = 0x00010000, - DRSUAPI_OBJECTCLASS_test = 0x00000000 + DRSUAPI_OBJECTCLASS_top = 0x00010000 } drsuapi_DsObjectClassId; typedef [v1_enum,public] enum { -- cgit From e427f58622e3d88c59953d6c1fb583acfb046213 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 25 May 2005 13:50:27 +0000 Subject: r6973: Merge new version of pidl into the main SAMBA_4_0 branch. The main difference in this new version is the extra data structure generated between the IDL data structure and the NDR parser: IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc } This makes the ndr_parser.pm internals much more sane. Other changes include: - Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags. - Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc.. - Use if() {} rather then if () goto foo; everywhere - NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC - By default, top level pointers are now "ref" (as is the default in most other IDL compilers). This can be overridden using the default_pointer_top() property. - initial work on new ethereal parser generators by Alan DeKok and me - pidl now writes errors in the standard format used by compilers, which is parsable by most editors - ability to warn about the fact that pidl extension(s) have been used, useful for making sure IDL files work with other IDL compilers. oh, and there's probably some other things I can't think of right now.. (This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01) --- source4/librpc/idl/drsuapi.idl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 16b8da82b8..737cd3b131 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,6 +7,7 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), + pointer_default_top(unique), depends(security) ] interface drsuapi @@ -554,7 +555,7 @@ interface drsuapi [size_is(count)] drsuapi_DsReplicaMetaData meta_data[]; } drsuapi_DsReplicaMetaDataCtr; - typedef [noprint] struct { + typedef [public,noprint] struct { drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; uint32 unknown1; @@ -908,7 +909,7 @@ interface drsuapi /*****************/ /* Function 0x11 */ - typedef [noprint] struct { + typedef [public,noprint] struct { drsuapi_DsReplicaObjectListItem *next_object; drsuapi_DsReplicaObject object; } drsuapi_DsReplicaObjectListItem; -- cgit From 50d2bf00660c8c2c12cd1ea40b2212aa8250e611 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 27 May 2005 15:49:15 +0000 Subject: r7029: Make array support in pidl similar to that in other IDL compilers. We should now able to use constructions like these: [size_is(20)] int *x; -> Pointer to array of 20 ints [size_is(20)] int x[]; -> Array of 20 ints [size_is(20)] int *x[]; -> Array of 20 pointers to ints [size_is(20,)] int *x[] -> Array of 20 pointers to ints [size_is(,20)] int *x[]; -> Pointer to array of 20 ints [size_is(,20)] int **x; -> Pointer to pointer to array of 20 ints [size_is(20)] int x[][30]; -> 20 blocks of 30 ints (This used to be commit ecf583da71c2f80be124c17fccdcb284b47e0695) --- source4/librpc/idl/drsuapi.idl | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 737cd3b131..66ed85db7a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -235,7 +235,7 @@ interface drsuapi typedef [flag(NDR_PAHEX)] struct { [range(0,10000)] uint32 length; - [size_is(length)] uint8 *byte_array[]; + [size_is(length)] uint8 *byte_array; } drsuapi_DsGetNCChangesRequest_Ctr14; typedef struct { @@ -245,7 +245,7 @@ interface drsuapi typedef struct { [range(0,0x100000)] uint32 count; - [size_is(count)] drsuapi_DsGetNCChangesRequest_Ctr13 *array[]; + [size_is(count)] drsuapi_DsGetNCChangesRequest_Ctr13 *array; } drsuapi_DsGetNCChangesRequest_Ctr12; typedef struct { @@ -386,7 +386,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueDataBlob *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueDataBlob *values; } drsuapi_DsAttributeValueCtrDataBlob; /* objectClass values */ @@ -397,7 +397,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueObjectClassId *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueObjectClassId *values; } drsuapi_DsAttributeValueCtrObjectClassId; /* uint32 values */ @@ -408,7 +408,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueUINT32 *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueUINT32 *values; } drsuapi_DsAttributeValueCtrUINT32; /* UnicodeString values */ @@ -419,7 +419,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueUnicodeString *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueUnicodeString *values; } drsuapi_DsAttributeValueCtrUnicodeString; /* DN String values */ @@ -438,7 +438,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueDNString *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueDNString *values; } drsuapi_DsAttributeValueCtrDNString; /* GUID values */ @@ -449,7 +449,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueGUID *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueGUID *values; } drsuapi_DsAttributeValueCtrGUID; /* SID values */ @@ -460,7 +460,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueSID *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueSID *values; } drsuapi_DsAttributeValueCtrSID; /* SecurityDescriptor values */ @@ -471,7 +471,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueSecurityDescriptor *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueSecurityDescriptor *values; } drsuapi_DsAttributeValueCtrSecurityDescriptor; /* NTTIME_1sec values */ @@ -482,7 +482,7 @@ interface drsuapi typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueNTTIME_1sec *values[]; + [size_is(num_values)] drsuapi_DsAttributeValueNTTIME_1sec *values; } drsuapi_DsAttributeValueCtrNTTIME_1sec; typedef [nodiscriminant] union { @@ -534,7 +534,7 @@ interface drsuapi typedef struct { [range(0,1048576)] uint32 num_attributes; - [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes[]; + [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes; } drsuapi_DsReplicaAttributeCtr; typedef [public] struct { @@ -753,7 +753,7 @@ interface drsuapi drsuapi_DsNameFormat format_offered; drsuapi_DsNameFormat format_desired; [range(1,10000)] uint32 count; - [size_is(count)] drsuapi_DsNameString *names[]; + [size_is(count)] drsuapi_DsNameString *names; } drsuapi_DsNameRequest1; typedef [switch_type(int32)] union { @@ -768,7 +768,7 @@ interface drsuapi typedef struct { uint32 count; - [size_is(count)] drsuapi_DsNameInfo1 *array[]; + [size_is(count)] drsuapi_DsNameInfo1 *array; } drsuapi_DsNameCtr1; typedef [switch_type(int32)] union { @@ -795,7 +795,7 @@ interface drsuapi uint32 unknown1; unistr *object_dn; [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsNameString *spn_names[]; + [size_is(count)] drsuapi_DsNameString *spn_names; } drsuapi_DsWriteAccountSpnRequest1; typedef [switch_type(int32)] union { @@ -848,7 +848,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo1 *array[]; + [size_is(count)] drsuapi_DsGetDCInfo1 *array; } drsuapi_DsGetDCInfoCtr1; typedef struct { @@ -870,7 +870,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo2 *array[]; + [size_is(count)] drsuapi_DsGetDCInfo2 *array; } drsuapi_DsGetDCInfoCtr2; typedef struct { @@ -885,7 +885,7 @@ interface drsuapi typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; + [size_is(count)] drsuapi_DsGetDCInfo01 *array; } drsuapi_DsGetDCInfoCtr01; typedef [v1_enum] enum { @@ -942,7 +942,7 @@ interface drsuapi uint32 level; [switch_is(level)] drsuapi_DsAddEntryCtr3Info *info; [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects[]; + [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; } drsuapi_DsAddEntryCtr3; typedef [switch_type(int32)] union { @@ -1106,7 +1106,7 @@ interface drsuapi unistr *attribute_name; unistr *object_dn; uint32 value_length; - [size_is(value_length)] uint8 *value[]; + [size_is(value_length)] uint8 *value; NTTIME deleted; NTTIME created; uint32 version; @@ -1161,7 +1161,7 @@ interface drsuapi unistr *attribute_name; unistr *object_dn; uint32 value_length; - [size_is(value_length)] uint8 *value[]; + [size_is(value_length)] uint8 *value; NTTIME deleted; NTTIME created; uint32 version; -- cgit From 129eedc66bacea67e530ba2c1c946319c55e8a54 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Jul 2005 14:40:28 +0000 Subject: r8474: add some more attid mappings for the password fields metze (This used to be commit 8454d32eb2f0aa4287956951c2550f060f7f10b3) --- source4/librpc/idl/drsuapi.idl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 66ed85db7a..af503d8288 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -375,7 +375,12 @@ interface drsuapi DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, - DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e + DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ + DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ + DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, + DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, + DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, + DRSUAPI_ATTRIBUTE_ } drsuapi_DsAttributeId; /* Generic DATA_BLOB values */ -- cgit From 65b8c54fc277a9f147f3fcfe542406cbc063d222 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Jul 2005 14:48:56 +0000 Subject: r8476: add a note that DsAddEntry is very incomplete yet metze (This used to be commit 53b91754107b790e2349a97069ea03a7bd6ff712) --- source4/librpc/idl/drsuapi.idl | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index af503d8288..7854e42ad3 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -919,6 +919,14 @@ interface drsuapi drsuapi_DsReplicaObject object; } drsuapi_DsReplicaObjectListItem; + /* + * please note the the current idl + * for DsAddEntry does only parse + * what I saw between 2 w2k3 boxes + * in my dssync experiments I got some other replies + * so all I want to say is that this is very incomplete yet... + * --metze + */ typedef struct { drsuapi_DsReplicaObjectListItem first_object; } drsuapi_DsAddEntryRequest2; -- cgit From 970ff9ba8d0b47fce6760e6adf9458820c5084b9 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 15 Jul 2005 00:00:48 +0000 Subject: r8480: fixed a typo (metze, I assume this was just a typo? it broke the build on oehmesrs6k) (This used to be commit aa68459fe7579b385dd1824680ec641052029a1e) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 7854e42ad3..1eaa242ff0 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -379,8 +379,8 @@ interface drsuapi DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, - DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, - DRSUAPI_ATTRIBUTE_ + DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e + /* DRSUAPI_ATTRIBUTE_ */ } drsuapi_DsAttributeId; /* Generic DATA_BLOB values */ -- cgit From 4459d16718e79ea879aaa73724be86579d22e52f Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 15 Jul 2005 14:36:02 +0000 Subject: r8503: remove useless line metze (This used to be commit ec31739642a89fb62930a3b8c0fa870aaad5c476) --- source4/librpc/idl/drsuapi.idl | 1 - 1 file changed, 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 1eaa242ff0..a9ecd30cb5 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -380,7 +380,6 @@ interface drsuapi DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e - /* DRSUAPI_ATTRIBUTE_ */ } drsuapi_DsAttributeId; /* Generic DATA_BLOB values */ -- cgit From 54a703d433cc586504bbdf445a03e3c3e0b4fe50 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Aug 2005 09:28:37 +0000 Subject: r9509: start to fix the pushing of drsuapi_DsAttributeValueDNString structs, this uses a trick with talloc_get_type() to workaround using [value()] vars in [subcontext_size()] metze (This used to be commit 93065f2d3439bceeaa7c2a09679cc6d81472150d) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a9ecd30cb5..10170bc282 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -428,16 +428,16 @@ interface drsuapi /* DN String values */ typedef [gensize] struct { - [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags)-4)] uint32 __ndr_size; + [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; } drsuapi_DsReplicaObjectIdentifier3; - typedef struct { - [range(0,10485760)] uint32 length; - [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object; + typedef struct { + [range(0,10485760),value(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] uint32 __ndr_size; + [subcontext(4),subcontext_size(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] drsuapi_DsReplicaObjectIdentifier3 *object; } drsuapi_DsAttributeValueDNString; typedef struct { -- cgit From 51c10eba0dffe5b9efc1d1fc159a9f6982483226 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Aug 2005 10:56:01 +0000 Subject: r9513: - let us parse some more replies of DsAddEntry - give some stuff a meening metze (This used to be commit 6d9b8d300829f1dcb3faee666c471c40c24c8aaa) --- source4/librpc/idl/drsuapi.idl | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 10170bc282..46b647db78 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -936,28 +936,54 @@ interface drsuapi typedef struct { uint32 unknown1; + WERROR status; uint32 unknown2; - uint32 unknown3; - } drsuapi_DsAddEntryCtr3Info1; + uint16 unknown3; + } drsuapi_DsAddEntryErrorInfoX; + + typedef [switch_type(uint32)] union { +/* [case(1)] drsuapi_DsAddEntryErrorInfo1 error1; + [case(2)] drsuapi_DsAddEntryErrorInfo2 error2; + [case(3)] drsuapi_DsAddEntryErrorInfo3 error3; +*/ [case(4)] drsuapi_DsAddEntryErrorInfoX error4; + [case(5)] drsuapi_DsAddEntryErrorInfoX error5; + [case(6)] drsuapi_DsAddEntryErrorInfoX error6; + [case(7)] drsuapi_DsAddEntryErrorInfoX error7; + } drsuapi_DsAddEntryErrorInfo; + + typedef struct { + WERROR status; + uint32 level; + [switch_is(level)] drsuapi_DsAddEntryErrorInfo *info; + } drsuapi_DsAddEntryError1; typedef [switch_type(uint32)] union { - [case(1)] drsuapi_DsAddEntryCtr3Info1 info1; - } drsuapi_DsAddEntryCtr3Info; + [case(1)] drsuapi_DsAddEntryError1 info1; + } drsuapi_DsAddEntryError; typedef struct { GUID guid; dom_sid28 sid; } drsuapi_DsReplicaObjectIdentifier2; + typedef struct { + drsuapi_DsReplicaObjectIdentifier *id; + uint32 unknown1; + drsuapi_DsAddEntryErrorInfoX error; + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; + } drsuapi_DsAddEntryCtr2; + typedef struct { drsuapi_DsReplicaObjectIdentifier *id; uint32 level; - [switch_is(level)] drsuapi_DsAddEntryCtr3Info *info; + [switch_is(level)] drsuapi_DsAddEntryError *error; [range(0,10000)] uint32 count; [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; } drsuapi_DsAddEntryCtr3; typedef [switch_type(int32)] union { + [case(2)] drsuapi_DsAddEntryCtr2 ctr2; [case(3)] drsuapi_DsAddEntryCtr3 ctr3; } drsuapi_DsAddEntryCtr; -- cgit From 838597393580aea0dcc8f461e30928bddd6f87c9 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Aug 2005 13:12:07 +0000 Subject: r9518: - remove the subcontext_size() hack from rev 9509 as it isn't needed - parse some more DsAddEntry() errors - add some more attid constands so that all attribute that are needed for a DsAddEntry in the DC Domain Join are mapped - add value() for __ndr_size, to more attribute container, so that the caller doesn't need to fill them in, that was the reason for getting an NDR_FAULT metze (This used to be commit a9a1a6f861c8db626b3232f057ef0b9c3d0ad1b0) --- source4/librpc/idl/drsuapi.idl | 58 ++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 14 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 46b647db78..289f5110e2 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -365,21 +365,28 @@ interface drsuapi * 2.5.5.17 => dom_sid */ - typedef [v1_enum] enum { + typedef [flag(NDR_PAHEX),v1_enum] enum { DRSUAPI_OBJECTCLASS_top = 0x00010000 } drsuapi_DsObjectClassId; - typedef [v1_enum,public] enum { + typedef [flag(NDR_PAHEX),v1_enum,public] enum { DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, DRSUAPI_ATTRIBUTE_description = 0x0000000d, + DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, + DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, - DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e + DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, + DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, + DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, + DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, + DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, + DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; /* Generic DATA_BLOB values */ @@ -395,7 +402,7 @@ interface drsuapi /* objectClass values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(4)] uint32 __ndr_size; [subcontext(4)] drsuapi_DsObjectClassId *objectClassId; } drsuapi_DsAttributeValueObjectClassId; @@ -406,7 +413,7 @@ interface drsuapi /* uint32 values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(4)] uint32 __ndr_size; [subcontext(4)] uint32 *value; } drsuapi_DsAttributeValueUINT32; @@ -436,8 +443,8 @@ interface drsuapi } drsuapi_DsReplicaObjectIdentifier3; typedef struct { - [range(0,10485760),value(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] uint32 __ndr_size; - [subcontext(4),subcontext_size(_ndr_size_drsuapi_DsReplicaObjectIdentifier3(ndr, r, object, ndr->flags))] drsuapi_DsReplicaObjectIdentifier3 *object; + [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size; + [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object; } drsuapi_DsAttributeValueDNString; typedef struct { @@ -447,7 +454,7 @@ interface drsuapi /* GUID values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(ndr_size_GUID(guid, ndr->flags))] uint32 __ndr_size; [subcontext(4)] GUID *guid; } drsuapi_DsAttributeValueGUID; @@ -458,7 +465,7 @@ interface drsuapi /* SID values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(ndr_size_dom_sid(sid))] uint32 __ndr_size; [subcontext(4)] dom_sid *sid; } drsuapi_DsAttributeValueSID; @@ -469,7 +476,7 @@ interface drsuapi /* SecurityDescriptor values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(ndr_size_security_descriptor(sd))] uint32 __ndr_size; [subcontext(4)] security_descriptor *sd; } drsuapi_DsAttributeValueSecurityDescriptor; @@ -480,7 +487,7 @@ interface drsuapi /* NTTIME_1sec values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(8)] uint32 __ndr_size; [subcontext(4)] NTTIME_1sec *time; } drsuapi_DsAttributeValueNTTIME_1sec; @@ -531,7 +538,7 @@ interface drsuapi [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; } drsuapi_DsReplicaAttributeValueCtr; - typedef [flag(NDR_PAHEX)] struct { + typedef struct { drsuapi_DsAttributeId attid; [switch_is(attid)] drsuapi_DsReplicaAttributeValueCtr value_ctr; } drsuapi_DsReplicaAttribute; @@ -941,9 +948,32 @@ interface drsuapi uint16 unknown3; } drsuapi_DsAddEntryErrorInfoX; + typedef struct { + [range(0,10485760)] uint32 size; + [size_is(size)] uint8 *data; + } drsuapi_DsAddEntryExtraErrorBuffer; + + typedef struct { + drsuapi_DsAddEntryErrorInfoX error; + drsuapi_DsAttributeId attid; + uint32 unknown2; + drsuapi_DsAddEntryExtraErrorBuffer buffer; + } drsuapi_DsAddEntryExtraError1; + + typedef /*[noprint]*/ struct { + drsuapi_DsAddEntryErrorListItem1 *next; + drsuapi_DsAddEntryExtraError1 error; + } drsuapi_DsAddEntryErrorListItem1; + + typedef struct { + drsuapi_DsReplicaObjectIdentifier *id; + WERROR status; + drsuapi_DsAddEntryErrorListItem1 first; + } drsuapi_DsAddEntryErrorInfo1; + typedef [switch_type(uint32)] union { -/* [case(1)] drsuapi_DsAddEntryErrorInfo1 error1; - [case(2)] drsuapi_DsAddEntryErrorInfo2 error2; + [case(1)] drsuapi_DsAddEntryErrorInfo1 error1; +/* [case(2)] drsuapi_DsAddEntryErrorInfo2 error2; [case(3)] drsuapi_DsAddEntryErrorInfo3 error3; */ [case(4)] drsuapi_DsAddEntryErrorInfoX error4; [case(5)] drsuapi_DsAddEntryErrorInfoX error5; -- cgit From ae88822b8c7fd45d9d96ef0d08f9d39ecaf3ba83 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 23 Aug 2005 13:19:33 +0000 Subject: r9519: Use the value() value of an element when that element is used in limited expressions (size_is,length_is,subcontext_size,etc) (This used to be commit 886780c298a794f304b0fce851bbb58c53605d17) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 289f5110e2..66aa527039 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -444,7 +444,7 @@ interface drsuapi typedef struct { [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size; - [subcontext(4)] drsuapi_DsReplicaObjectIdentifier3 *object; + [subcontext(4),subcontext_size(__ndr_size)] drsuapi_DsReplicaObjectIdentifier3 *object; } drsuapi_DsAttributeValueDNString; typedef struct { -- cgit From 8569e18c9589f8ab589910306e31b204880a0b30 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Aug 2005 16:19:04 +0000 Subject: r9527: add the magic Bind GUID's, that are needed to fetch the whole tree with DsGeNCChanges(), this is possible as administrator without having a DC account joined to the domain metze (This used to be commit e6f92444d26734ed984ff1b15a359ef94193945a) --- source4/librpc/idl/drsuapi.idl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 66aa527039..89d55c1821 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -100,6 +100,11 @@ interface drsuapi * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 */ const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + /* + * this magic guid are needed to fetch the whole tree with drsuapi_DsGetNCChanges() + */ + const string DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; + const string DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; WERROR drsuapi_DsBind( [in] GUID *bind_guid, -- cgit From f3c121eb748b37a8b60d353d371bed9b79d0e37c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 30 Aug 2005 13:43:58 +0000 Subject: r9797: - let us parse replication packets with linked attributes fine, - also resolve the 0x1f ('member') attid for nicer debugging metze (This used to be commit f6cf38d608d727e2065035604b537e07cb88ded9) --- source4/librpc/idl/drsuapi.idl | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 89d55c1821..85254b3987 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -377,6 +377,7 @@ interface drsuapi typedef [flag(NDR_PAHEX),v1_enum,public] enum { DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, DRSUAPI_ATTRIBUTE_description = 0x0000000d, + DRSUAPI_ATTRIBUTE_member = 0x0000001f, DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, @@ -527,6 +528,7 @@ interface drsuapi [case(0x0009037b)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; /* DN String */ + [case(DRSUAPI_ATTRIBUTE_member)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0002000e)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x00020024)] drsuapi_DsAttributeValueCtrDNString dn_string; @@ -611,6 +613,18 @@ interface drsuapi drsuapi_DsGetNCChangesCompressedInfo info; } drsuapi_DsGetNCChangesCtr2; + typedef struct { + drsuapi_DsReplicaObjectIdentifier *dn; + drsuapi_DsAttributeId attid; + /* this dn_string, depends on the attid, maybe could be another + * attribute syntax + */ + drsuapi_DsAttributeValueDNString dn_string; + uint32 u1; + NTTIME_1sec time1; + drsuapi_DsReplicaMetaData meta_data; + } drsuapi_DsReplicaLinkedAttribute; + typedef struct { GUID guid1; GUID guid2; @@ -626,8 +640,8 @@ interface drsuapi uint32 unknown4; uint32 unknown5; uint32 unknown6; - uint32 len1; - uint32 array_ptr1; + [range(0,1048576)] uint32 linked_attributes_count; + [size_is(linked_attributes_count)] drsuapi_DsReplicaLinkedAttribute *linked_attributes; uint32 unknown7; } drsuapi_DsGetNCChangesCtr6; -- cgit From 2f115473bfa058c509c206b6359b5c0d7e8e18c2 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 10 Oct 2005 12:14:29 +0000 Subject: r10870: decompress DsGetNCChangesCtr7 replies, that uses type 2 (MSZIP) compression metze (This used to be commit b451137526c4872a808f14ef42b2ed50abce1355) --- source4/librpc/idl/drsuapi.idl | 76 +++++++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 19 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 85254b3987..39aa4b9f55 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -597,22 +597,6 @@ interface drsuapi uint32 unknown4; } drsuapi_DsGetNCChangesCtr1; - typedef struct { - uint32 decompressed_length; - uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length),compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1; - } drsuapi_DsGetNCChangesCompressedInfo; - - typedef struct { - uint32 decompressed_length; - uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length),flag(NDR_REMAINING)] DATA_BLOB *decompressed; - } drsuapi_DsGetNCChangesCompressedInfo_Test; - - typedef struct { - drsuapi_DsGetNCChangesCompressedInfo info; - } drsuapi_DsGetNCChangesCtr2; - typedef struct { drsuapi_DsReplicaObjectIdentifier *dn; drsuapi_DsAttributeId attid; @@ -646,9 +630,63 @@ interface drsuapi } drsuapi_DsGetNCChangesCtr6; typedef struct { - uint32 unknown1; - uint16 unknown2; /* enum */ - drsuapi_DsGetNCChangesCompressedInfo_Test info; + uint32 decompressed_length; + uint32 compressed_length; + [subcontext(4),subcontext_size(r->compressed_length), + compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr1 *ctr1; + } drsuapi_DsGetNCChangesMSZIPCtr1; + + typedef struct { + uint32 decompressed_length; + uint32 compressed_length; + [subcontext(4),subcontext_size(r->compressed_length), + compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr6 *ctr6; + } drsuapi_DsGetNCChangesMSZIPCtr6; + + typedef struct { + uint32 decompressed_length; + uint32 compressed_length; + [subcontext(4),subcontext_size(r->compressed_length), + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), + flag(NDR_REMAINING)] DATA_BLOB *decompressed; + } drsuapi_DsGetNCChangesXPRESSCtr1; + + typedef struct { + uint32 decompressed_length; + uint32 compressed_length; + [subcontext(4),subcontext_size(r->compressed_length), + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), + flag(NDR_REMAINING)] DATA_BLOB *decompressed; + } drsuapi_DsGetNCChangesXPRESSCtr6; + + typedef [enum16bit] enum { + DRSUAPI_COMPRESSION_TYPE_MSZIP = 2, + DRSUAPI_COMPRESSION_TYPE_XPRESS = 3 + } drsuapi_DsGetNCChangesCompressionType; + + typedef [nodiscriminant,flag(NDR_PAHEX)] union { + [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; + [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr6 mszip6; + [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] drsuapi_DsGetNCChangesXPRESSCtr1 xpress1; + [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] drsuapi_DsGetNCChangesXPRESSCtr6 xpress6; + } drsuapi_DsGetNCChangesCompressedCtr; + + typedef struct { + /* + * this is a bit ugly, as the compression depends on the flags + * in the DsBind(), but only w2k uses DsGetNCChangesReq5 + * and will get DsGetNCChangesCtr2 replies, and w2k only knowns + * about MSZIP and level 1 replies + */ + [switch_is(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; + } drsuapi_DsGetNCChangesCtr2; + + typedef struct { + [range(0,6)] int32 level; + [range(2,3)] drsuapi_DsGetNCChangesCompressionType type; + [switch_is(level | (type<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; } drsuapi_DsGetNCChangesCtr7; typedef [switch_type(int32)] union { -- cgit From 2b14137167c44ee01158f124713ab369012900db Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 14 Oct 2005 05:52:03 +0000 Subject: r10984: fix valgrind warnings, I had used that to check if w2k3 accept random values here, as w2k generates also random stuff here metze (This used to be commit e04c78e4e925ce385651eb0e77e3ea7aee9e8008) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 39aa4b9f55..60bd57cc52 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -122,7 +122,7 @@ interface drsuapi /* Function 0x02 */ typedef [gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; - /*[value(ndr_length_dom_sid(&r->sid))]*/ uint32 __ndr_size_sid; + [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; -- cgit From 68d82998d2e3133dd7b743b1cf3a78ee9d052a21 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 16 Oct 2005 15:47:28 +0000 Subject: r11096: Eliminate pointer_default_top() (This used to be commit b773d848e854394f36351f97130a20a245367b2c) --- source4/librpc/idl/drsuapi.idl | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 60bd57cc52..075b97ce9c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,7 +7,6 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - pointer_default_top(unique), depends(security) ] interface drsuapi @@ -107,15 +106,15 @@ interface drsuapi const string DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; WERROR drsuapi_DsBind( - [in] GUID *bind_guid, - [in,out] drsuapi_DsBindInfoCtr *bind_info, - [out,ref] policy_handle *bind_handle + [in,unique] GUID *bind_guid, + [in,out,unique] drsuapi_DsBindInfoCtr *bind_info, + [out] policy_handle *bind_handle ); /*****************/ /* Function 0x01 */ WERROR drsuapi_DsUnbind( - [in,out,ref] policy_handle *bind_handle + [in,out] policy_handle *bind_handle ); /*****************/ @@ -167,7 +166,7 @@ interface drsuapi } drsuapi_DsReplicaSyncRequest; WERROR drsuapi_DsReplicaSync( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in] int32 level, [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req ); @@ -697,7 +696,7 @@ interface drsuapi } drsuapi_DsGetNCChangesCtr; WERROR drsuapi_DsGetNCChanges( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in,out] int32 level, [in,switch_is(level)] drsuapi_DsGetNCChangesRequest req, [out,switch_is(level)] drsuapi_DsGetNCChangesCtr ctr @@ -725,7 +724,7 @@ interface drsuapi } drsuapi_DsReplicaUpdateRefsRequest; WERROR drsuapi_DsReplicaUpdateRefs( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in] int32 level, [in,switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req ); @@ -844,7 +843,7 @@ interface drsuapi } drsuapi_DsNameCtr; WERROR drsuapi_DsCrackNames( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in, out] int32 level, [in,switch_is(level)] drsuapi_DsNameRequest req, [out,switch_is(level)] drsuapi_DsNameCtr ctr @@ -879,8 +878,8 @@ interface drsuapi } drsuapi_DsWriteAccountSpnResult; WERROR drsuapi_DsWriteAccountSpn( - [in,ref] policy_handle *bind_handle, - [in, out] int32 level, + [in] policy_handle *bind_handle, + [in,out] int32 level, [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req, [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res ); @@ -969,7 +968,7 @@ interface drsuapi } drsuapi_DsGetDCInfoCtr; WERROR drsuapi_DsGetDomainControllerInfo( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in, out] int32 level, [in,switch_is(level)] drsuapi_DsGetDCInfoRequest req, [out,switch_is(level)] drsuapi_DsGetDCInfoCtr ctr @@ -1075,7 +1074,7 @@ interface drsuapi } drsuapi_DsAddEntryCtr; WERROR drsuapi_DsAddEntry( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in,out] int32 level, [in,switch_is(level)] drsuapi_DsAddEntryRequest req, [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr @@ -1355,7 +1354,7 @@ interface drsuapi } drsuapi_DsReplicaInfo; WERROR drsuapi_DsReplicaGetInfo( - [in,ref] policy_handle *bind_handle, + [in] policy_handle *bind_handle, [in] drsuapi_DsReplicaGetInfoLevel level, [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req, [out] drsuapi_DsReplicaInfoType info_type, -- cgit From 8d036f304ed8bbb61be3e26c3670a8c743bd7152 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 16 Oct 2005 18:33:56 +0000 Subject: r11099: Replace unistr with [string] equivalent (This used to be commit 6a8291c80ee814a6bdc092b3ef53f450f30b44a0) --- source4/librpc/idl/drsuapi.idl | 80 +++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 40 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 075b97ce9c..b348cbec57 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -810,7 +810,7 @@ interface drsuapi } drsuapi_DsNameFormat; typedef struct { - unistr *str; + [string,charset(UTF16)] uint16 *str; } drsuapi_DsNameString; typedef struct { @@ -829,8 +829,8 @@ interface drsuapi typedef struct { drsuapi_DsNameStatus status; - unistr *dns_domain_name; - unistr *result_name; + [charset(UTF16),string] uint16 *dns_domain_name; + [charset(UTF16),string] uint16 *result_name; } drsuapi_DsNameInfo1; typedef struct { @@ -860,7 +860,7 @@ interface drsuapi typedef struct { drsuapi_DsSpnOperation operation; uint32 unknown1; - unistr *object_dn; + [charset(UTF16),string] uint16 *object_dn; [range(0,10000)] uint32 count; [size_is(count)] drsuapi_DsNameString *spn_names; } drsuapi_DsWriteAccountSpnRequest1; @@ -895,7 +895,7 @@ interface drsuapi /*****************/ /* Function 0x10 */ typedef struct { - unistr *domain_name; /* netbios or dns */ + [charset(UTF16),string] uint16 *domain_name; /* netbios or dns */ int32 level; /* specifies the switch level for the request */ } drsuapi_DsGetDCInfoRequest1; @@ -904,11 +904,11 @@ interface drsuapi } drsuapi_DsGetDCInfoRequest; typedef struct { - unistr *netbios_name; - unistr *dns_name; - unistr *site_name; - unistr *computer_dn; - unistr *server_dn; + [charset(UTF16),string] uint16 *netbios_name; + [charset(UTF16),string] uint16 *dns_name; + [charset(UTF16),string] uint16 *site_name; + [charset(UTF16),string] uint16 *computer_dn; + [charset(UTF16),string] uint16 *server_dn; uint32 is_pdc; uint32 is_enabled; } drsuapi_DsGetDCInfo1; @@ -919,13 +919,13 @@ interface drsuapi } drsuapi_DsGetDCInfoCtr1; typedef struct { - unistr *netbios_name; - unistr *dns_name; - unistr *site_name; - unistr *site_dn; - unistr *computer_dn; - unistr *server_dn; - unistr *ntds_dn; + [charset(UTF16),string] uint16 *netbios_name; + [charset(UTF16),string] uint16 *dns_name; + [charset(UTF16),string] uint16 *site_name; + [charset(UTF16),string] uint16 *site_dn; + [charset(UTF16),string] uint16 *computer_dn; + [charset(UTF16),string] uint16 *server_dn; + [charset(UTF16),string] uint16 *ntds_dn; uint32 is_pdc; uint32 is_enabled; uint32 is_gc; @@ -947,7 +947,7 @@ interface drsuapi uint32 unknown4; uint32 unknown5; uint32 unknown6; - unistr *server_nt4_account; + [charset(UTF16),string] uint16 *server_nt4_account; } drsuapi_DsGetDCInfo01; typedef struct { @@ -1111,17 +1111,17 @@ interface drsuapi typedef struct { drsuapi_DsReplicaInfoType info_type; - unistr *object_dn; + [charset(UTF16),string] uint16 *object_dn; GUID guid1; } drsuapi_DsReplicaGetInfoRequest1; typedef struct { drsuapi_DsReplicaInfoType info_type; - unistr *object_dn; + [charset(UTF16),string] uint16 *object_dn; GUID guid1; uint32 unknown1; - unistr *string1; - unistr *string2; + [charset(UTF16),string] uint16 *string1; + [charset(UTF16),string] uint16 *string2; uint32 unknown2; } drsuapi_DsReplicaGetInfoRequest2; @@ -1131,10 +1131,10 @@ interface drsuapi } drsuapi_DsReplicaGetInfoRequest; typedef struct { - unistr *naming_context_dn; - unistr *source_dsa_obj_dn; - unistr *source_dsa_address; - unistr *transport_obj_dn; + [charset(UTF16),string] uint16 *naming_context_dn; + [charset(UTF16),string] uint16 *source_dsa_obj_dn; + [charset(UTF16),string] uint16 *source_dsa_address; + [charset(UTF16),string] uint16 *transport_obj_dn; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 reserved; GUID naming_context_obj_guid; @@ -1162,7 +1162,7 @@ interface drsuapi } drsuapi_DsReplicaCoursorCtr; typedef struct { - unistr *attribute_name; + [charset(UTF16),string] uint16 *attribute_name; uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; @@ -1177,7 +1177,7 @@ interface drsuapi } drsuapi_DsReplicaObjMetaDataCtr; typedef struct { - unistr *dsa_obj_dn; + [charset(UTF16),string] uint16 *dsa_obj_dn; GUID dsa_obj_guid; NTTIME first_failure; uint32 num_failures; @@ -1213,9 +1213,9 @@ interface drsuapi uint32 priority; drsuapi_DsReplicaOpType operation_type; [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options; - unistr *nc_dn; - unistr *remote_dsa_obj_dn; - unistr *remote_dsa_address; + [charset(UTF16),string] uint16 *nc_dn; + [charset(UTF16),string] uint16 *remote_dsa_obj_dn; + [charset(UTF16),string] uint16 *remote_dsa_address; GUID nc_obj_guid; GUID remote_dsa_obj_guid; } drsuapi_DsReplicaOp; @@ -1227,8 +1227,8 @@ interface drsuapi } drsuapi_DsReplicaOpCtr; typedef struct { - unistr *attribute_name; - unistr *object_dn; + [charset(UTF16),string] uint16 *attribute_name; + [charset(UTF16),string] uint16 *object_dn; uint32 value_length; [size_is(value_length)] uint8 *value; NTTIME deleted; @@ -1256,7 +1256,7 @@ interface drsuapi GUID source_dsa_invocation_id; hyper highest_usn; NTTIME last_sync_success; - unistr *source_dsa_obj_dn; + [charset(UTF16),string] uint16 *source_dsa_obj_dn; } drsuapi_DsReplicaCoursor3; typedef struct { @@ -1266,13 +1266,13 @@ interface drsuapi } drsuapi_DsReplicaCoursor3Ctr; typedef struct { - unistr *attribute_name; + [charset(UTF16),string] uint16 *attribute_name; uint32 version; NTTIME originating_last_changed; GUID originating_dsa_invocation_id; hyper originating_usn; hyper local_usn; - unistr *originating_dsa_obj_dn; + [charset(UTF16),string] uint16 *originating_dsa_obj_dn; } drsuapi_DsReplicaObjMetaData2; typedef struct { @@ -1282,8 +1282,8 @@ interface drsuapi } drsuapi_DsReplicaObjMetaData2Ctr; typedef struct { - unistr *attribute_name; - unistr *object_dn; + [charset(UTF16),string] uint16 *attribute_name; + [charset(UTF16),string] uint16 *object_dn; uint32 value_length; [size_is(value_length)] uint8 *value; NTTIME deleted; @@ -1293,7 +1293,7 @@ interface drsuapi GUID originating_dsa_invocation_id; hyper originating_usn; hyper local_usn; - unistr *originating_dsa_obj_dn; + [charset(UTF16),string] uint16 *originating_dsa_obj_dn; } drsuapi_DsReplicaAttrValMetaData2; typedef struct { @@ -1319,7 +1319,7 @@ interface drsuapi } drsuapi_DsReplicaConnection04Ctr; typedef struct { - unistr *str1; + [charset(UTF16),string] uint16 *str1; uint32 u1; uint32 u2; uint32 u3; -- cgit From ec6973747a7269224b4cf6ccb593f5ed92e07a94 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 16 Oct 2005 19:21:17 +0000 Subject: r11103: Eliminate ascstr (This used to be commit c8a0511f37f8cff3e949ffda0bb7fae714d5bbb4) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b348cbec57..f900af9ce2 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -98,12 +98,12 @@ interface drsuapi * * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 */ - const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + const char *DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; /* * this magic guid are needed to fetch the whole tree with drsuapi_DsGetNCChanges() */ - const string DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; - const string DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; + const char *DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; + const char *DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; WERROR drsuapi_DsBind( [in,unique] GUID *bind_guid, @@ -714,7 +714,7 @@ interface drsuapi typedef struct { [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - [ref] ascstr *dest_dsa_dns_name; + [ref,charset(DOS),string] uint8 *dest_dsa_dns_name; GUID dest_dsa_guid; drsuapi_DsReplicaUpdateRefsOptions options; } drsuapi_DsReplicaUpdateRefsRequest1; -- cgit From f598135c6b3dabd1435ea7eed5d8ab69dac97407 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 16 Oct 2005 23:47:09 +0000 Subject: r11105: Warn if conformant arrays are not at the end of a struct Support conformant [string] arrays Eliminate utf8string This breaks xattr binary compatibility with previous versions - is that a problem? (This used to be commit 7596c708ba6642473319a1b699a5a910a639e50d) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f900af9ce2..9711674581 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -430,7 +430,7 @@ interface drsuapi /* UnicodeString values */ typedef struct { [range(0,10485760)] uint32 length; - [subcontext(4)] nstring *string; + [size_is(length),charset(UTF16)] uint16 *string; } drsuapi_DsAttributeValueUnicodeString; typedef struct { -- cgit From ba97ac6b96cbd5a3b40acd2d62f7483d1872d124 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 19 Oct 2005 09:43:48 +0000 Subject: r11179: revert to the old code, till jelmer find a solution how to handle a UTF16 string in a uint8 array metze (This used to be commit d13315f3b135228febcbe9b99d3550363c21da81) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 9711674581..f900af9ce2 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -430,7 +430,7 @@ interface drsuapi /* UnicodeString values */ typedef struct { [range(0,10485760)] uint32 length; - [size_is(length),charset(UTF16)] uint16 *string; + [subcontext(4)] nstring *string; } drsuapi_DsAttributeValueUnicodeString; typedef struct { -- cgit From b47e65692706e1d3b2388ea9d49990e692709574 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 19 Oct 2005 15:34:39 +0000 Subject: r11185: - resolve attid for "supplementalCredentials" into a name - print "supplementalCredentials" also when --option="dssync:print_pwd_blobs=yes" is used abartlet: this field may contain the krb5 keys... metze (This used to be commit 26c69348ca3ae10128df9832f8b4d9c1024631e2) --- source4/librpc/idl/drsuapi.idl | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f900af9ce2..e64686c425 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -374,24 +374,25 @@ interface drsuapi } drsuapi_DsObjectClassId; typedef [flag(NDR_PAHEX),v1_enum,public] enum { - DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, - DRSUAPI_ATTRIBUTE_description = 0x0000000d, - DRSUAPI_ATTRIBUTE_member = 0x0000001f, - DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, - DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, - DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, - DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, - DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, - DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ - DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ - DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, - DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, - DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, - DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, - DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, - DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, - DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, - DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c + DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, + DRSUAPI_ATTRIBUTE_description = 0x0000000d, + DRSUAPI_ATTRIBUTE_member = 0x0000001f, + DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, + DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, + DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, + DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, + DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, + DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ + DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ + DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, + DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, + DRSUAPI_ATTRIBUTE_supplementalCredentials = 0x0009007d, + DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, + DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, + DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, + DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, + DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, + DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; /* Generic DATA_BLOB values */ -- cgit From c1113796ebccf73c554d153c6c4d5b1ec16cb4bd Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 19 Oct 2005 16:30:02 +0000 Subject: r11187: in case the msDS-KeyVersionNumber is replicated (I didn't assume this...) show the string in the debug output, and show it with --option="dssync:print_pwd_blobs=yes" metze (This used to be commit 98c1e8e3df90c05691a12bb25357fd75da419c5c) --- source4/librpc/idl/drsuapi.idl | 1 + 1 file changed, 1 insertion(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index e64686c425..c03892d5dc 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -391,6 +391,7 @@ interface drsuapi DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, + DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber = 0x000906f6, DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; -- cgit From 620d375320e143abcf6775a392f9bde3146f2baa Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 25 Dec 2005 01:33:35 +0000 Subject: r12465: Merge Parse::Pidl::Samba4::NDR::Header into Parse::Pidl::Samba4::NDR::Parser. Small optimization to avoid including NDR headers multiple times (This used to be commit 6967b9884970b6f1d7617196ab024d401628a13c) --- source4/librpc/idl/drsuapi.idl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c03892d5dc..ff76e65e51 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -119,7 +119,7 @@ interface drsuapi /*****************/ /* Function 0x02 */ - typedef [gensize] struct { + typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; @@ -441,7 +441,7 @@ interface drsuapi } drsuapi_DsAttributeValueCtrUnicodeString; /* DN String values */ - typedef [gensize] struct { + typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; @@ -582,7 +582,7 @@ interface drsuapi drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; } drsuapi_DsReplicaObjectListItemEx; - typedef [gensize] struct { + typedef [public,gensize] struct { GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; -- cgit From 9865048bf41acff37d021a0773347d36bcac3798 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Mar 2006 00:12:58 +0000 Subject: r14361: Support 'helper' attribute in pidl and use it. Remove some headers from include/includes.h (they're now only included in the file they are used) (This used to be commit 7213b7498eacac2c2cd03cf6aace376ce153cc7c) --- source4/librpc/idl/drsuapi.idl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index ff76e65e51..83ffbb4baa 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,7 +7,8 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security) + depends(security), + helper("librpc/ndr/ndr_drsuapi.h") ] interface drsuapi { -- cgit From e002300f238dd0937dd9f768e366c006945e8baa Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 29 Apr 2006 17:34:49 +0000 Subject: r15328: Move some functions around, remove dependencies. Remove some autogenerated headers (which had prototypes now autogenerated by pidl) Remove ndr_security.h from a few places - it's no longer necessary (This used to be commit c19c2b51d3e1ad347120b06a22bda5ec586c22e8) --- source4/librpc/idl/drsuapi.idl | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 83ffbb4baa..85a475175a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,8 +7,7 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security), - helper("librpc/ndr/ndr_drsuapi.h") + depends(security) ] interface drsuapi { @@ -122,7 +121,7 @@ interface drsuapi /* Function 0x02 */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; - [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid(&r->sid, ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; @@ -444,7 +443,7 @@ interface drsuapi /* DN String values */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; - [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid(&r->sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; @@ -473,7 +472,7 @@ interface drsuapi /* SID values */ typedef struct { - [range(0,10485760),value(ndr_size_dom_sid(sid))] uint32 __ndr_size; + [range(0,10485760),value(ndr_size_dom_sid(sid,ndr->flags))] uint32 __ndr_size; [subcontext(4)] dom_sid *sid; } drsuapi_DsAttributeValueSID; @@ -484,7 +483,7 @@ interface drsuapi /* SecurityDescriptor values */ typedef struct { - [range(0,10485760),value(ndr_size_security_descriptor(sd))] uint32 __ndr_size; + [range(0,10485760),value(ndr_size_security_descriptor(sd,ndr->flags))] uint32 __ndr_size; [subcontext(4)] security_descriptor *sd; } drsuapi_DsAttributeValueSecurityDescriptor; -- cgit From 3cd705a65f9027afa24b5d096b961b8356256257 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 8 May 2006 12:54:39 +0000 Subject: r15512: Move uuid functions out of ndr_misc.c (This used to be commit 54cc9f8ccf30a0f5de1d3bb68d15ec3a8791c162) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 85a475175a..3668ddab7e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,7 +7,7 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security) + depends(security,misc) ] interface drsuapi { -- cgit From 9727b061f330ba8f500a29bf4b94992e2bceffbc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 21 May 2006 12:58:39 +0000 Subject: r15776: Don't generate ref pointers in Samba4-generated code. There is no point in having pointers for outgoing data when you can already modify the top-level element. This can be overridden (temporarily) by specifying the new "keepref" attribute. Once we've removed keepref from all IDL files, I'll remove this attribute as well. (This used to be commit bdc6dd37503ced8322a671d225122ccffbb8bfec) --- source4/librpc/idl/drsuapi.idl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 3668ddab7e..f106c4ce3a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,7 +7,8 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security,misc) + depends(security,misc), + keepref ] interface drsuapi { -- cgit From eda5759e4566c69f03e13137473980a10dfedde4 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 4 Jul 2006 10:25:04 +0000 Subject: r16796: Fill in dsr_GetMemberships() / dsr_GetMemberships2(). This intersting call is apparently used to construct the user token, collect memberships from other DSAs and to retrieve (nested) memberships of a given group. Torture test to follow (once I cleaned it up). Guenther (This used to be commit ca5e133e8c6fca188fcaa834cdcd4cb2cd801d79) --- source4/librpc/idl/drsuapi.idl | 77 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f106c4ce3a..cba0103b8e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,11 +7,13 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security,misc), + depends(security,misc,samr), keepref ] interface drsuapi { + declare bitmap samr_GroupAttrs; + /*****************/ /* Function 0x00 */ typedef [bitmap32bit] bitmap { @@ -767,7 +769,51 @@ interface drsuapi /*****************/ /* Function 0x09 */ - WERROR DRSUAPI_GET_MEMBERSHIPS(); + + /* how are type 4 and 7 different from 2 and 3 ? */ + typedef [v1_enum] enum { + DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS = 1, + DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS = 2, + DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS = 3, + DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2 = 4, + DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS = 5, + DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS = 6, + DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2 = 7 + } drsuapi_DsMembershipType; + + typedef struct { + NTSTATUS status; + [range(0,10000)] uint32 num_memberships; + [range(0,10000)] uint32 num_sids; + [size_is(num_memberships)] drsuapi_DsReplicaObjectIdentifier **info_array; + [size_is(num_memberships)] samr_GroupAttrs *group_attrs; + [size_is(num_sids)] dom_sid28 **sids; + } drsuapi_DsGetMembershipsCtr1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; + } drsuapi_DsGetMembershipsCtr; + + const int DRSUAPI_DS_MEMBERSHIP_FLAG_GROUP_ATTR = 0x1; + + typedef struct { + [range(1,10000)] uint32 count; + [size_is(count)] drsuapi_DsReplicaObjectIdentifier **info_array; + uint32 flags; + drsuapi_DsMembershipType type; + drsuapi_DsReplicaObjectIdentifier *domain; + } drsuapi_DsGetMembershipsRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetMembershipsRequest1 req1; + } drsuapi_DsGetMembershipsRequest; + + WERROR drsuapi_DsGetMemberships( + [in] policy_handle *bind_handle, + [in,out] int32 level, + [in] [switch_is(level)] drsuapi_DsGetMembershipsRequest req, + [out] [switch_is(level)] drsuapi_DsGetMembershipsCtr ctr + ); /*****************/ /* Function 0x0a */ @@ -1370,7 +1416,32 @@ interface drsuapi /*****************/ /* Function 0x15 */ - WERROR DRSUAPI_GET_MEMBERSHIPS2(); + + typedef struct { + [range(0,10000)] uint32 num_entries; + [size_is(num_entries)] drsuapi_DsGetMembershipsCtr1 **ctrl_array; + } drsuapi_DsGetMemberships2Ctr1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; + } drsuapi_DsGetMemberships2Ctr; + + typedef struct { + [range(1,10000)] uint32 num_req; + [size_is(num_req)] drsuapi_DsGetMembershipsRequest1 **req_array; + } drsuapi_DsGetMemberships2Request1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetMemberships2Request1 req1; + } drsuapi_DsGetMemberships2Request; + + WERROR drsuapi_DsGetMemberships2( + [in] policy_handle *bind_handle, + [in,out] int32 level, + [in] [switch_is(level)] drsuapi_DsGetMemberships2Request req, + [out] [switch_is(level)] drsuapi_DsGetMemberships2Ctr ctr + ); + /*****************/ /* Function 0x16 */ -- cgit From 0c149befe2feaf1a7e052471f180a4667bbaa1b0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 7 Aug 2006 13:39:52 +0000 Subject: r17438: extend the comment metze (This used to be commit 246c35e008fb0cc167cdd1b13db6a50046e3f991) --- source4/librpc/idl/drsuapi.idl | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index cba0103b8e..9f02f735d1 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -104,6 +104,8 @@ interface drsuapi const char *DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; /* * this magic guid are needed to fetch the whole tree with drsuapi_DsGetNCChanges() + * as administrator and this values are also used in the destination_dsa_guid field + * of drsuapi_DsGetNCChangesReq5/8 and the source_dsa_guid is zero. */ const char *DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; const char *DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; -- cgit From 87e240b21e4b14c9114a5775fce58001ba25d42f Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 7 Aug 2006 17:25:52 +0000 Subject: r17441: add some more attribute with credentials in them metze (This used to be commit 3e2d923e17544020255b7181219ca26878f6c164) --- source4/librpc/idl/drsuapi.idl | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 9f02f735d1..f77a5496a0 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -386,14 +386,21 @@ interface drsuapi DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, + DRSUAPI_ATTRIBUTE_currentValue = 0x0009001b, DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, + DRSUAPI_ATTRIBUTE_priorValue = 0x00090064, DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, DRSUAPI_ATTRIBUTE_supplementalCredentials = 0x0009007d, + DRSUAPI_ATTRIBUTE_trustAuthIncoming = 0x00090081, + DRSUAPI_ATTRIBUTE_trustAuthOutgoing = 0x00090087, DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, + DRSUAPI_ATTRIBUTE_serverReferenceBL = 0x00090204, + DRSUAPI_ATTRIBUTE_initialAuthIncoming = 0x0009021b, + DRSUAPI_ATTRIBUTE_initialAuthOutgoing = 0x0009021c, DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber = 0x000906f6, @@ -543,6 +550,7 @@ interface drsuapi [case(0x0009072c)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x0009026a)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(0x00090203)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(0x00090204)] drsuapi_DsAttributeValueCtrDNString dn_string; /* NTTIME_1sec */ [case(0x00020002)] drsuapi_DsAttributeValueCtrNTTIME_1sec nttime_1sec; -- cgit From cd9057a0bb90bef6d31051f176849b6a3543a376 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 18 Sep 2006 21:52:00 +0000 Subject: r18639: Get rid of the keepref support (This used to be commit d1364ef0cd8f1a64f44476476323ab390ac4de48) --- source4/librpc/idl/drsuapi.idl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f77a5496a0..aa87676c9d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -7,8 +7,7 @@ authservice("ldap"), helpstring("Active Directory Replication"), pointer_default(unique), - depends(security,misc,samr), - keepref + depends(security,misc,samr) ] interface drsuapi { -- cgit From 863dcbfa06cfcd4eecba7559c03080321b9a8a91 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 6 Nov 2006 22:54:49 +0000 Subject: r19588: Use include and import statements rather than depends() and helper(). (This used to be commit 347ae9628202ca4de4318ef8156999239aad9192) --- source4/librpc/idl/drsuapi.idl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index aa87676c9d..0504c0d442 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1,13 +1,14 @@ #include "idl_types.h" +import "security.idl", "misc.idl", "samr.idl"; + [ uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"), version(4.0), endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), authservice("ldap"), helpstring("Active Directory Replication"), - pointer_default(unique), - depends(security,misc,samr) + pointer_default(unique) ] interface drsuapi { -- cgit From 9671a72a4c3e0950585575da72e2c740f294031c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 22 Nov 2006 18:40:27 +0000 Subject: r19847: add idl for DsRemoveDSServer(), this is used when a server unbecomes a DC metze (This used to be commit df133cd22a350d422c49844e50a67f4cc1fb61e4) --- source4/librpc/idl/drsuapi.idl | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 0504c0d442..a01e082267 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -945,7 +945,30 @@ interface drsuapi /*****************/ /* Function 0x0e */ - WERROR DRSUAPI_REMOVE_DS_SERVER(); + typedef struct { + [charset(UTF16),string] uint16 *server_dn; + [charset(UTF16),string] uint16 *domain_dn; + uint32 unknown; /* 0x000000001 */ + } drsuapi_DsRemoveDSServerRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsRemoveDSServerRequest1 req1; + } drsuapi_DsRemoveDSServerRequest; + + typedef struct { + WERROR status; + } drsuapi_DsRemoveDSServerResult1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsRemoveDSServerResult1 res1; + } drsuapi_DsRemoveDSServerResult; + + WERROR drsuapi_DsRemoveDSServer( + [in] policy_handle *bind_handle, + [in,out] int32 level, + [in,switch_is(level)] drsuapi_DsRemoveDSServerRequest req, + [out,switch_is(level)] drsuapi_DsRemoveDSServerResult res + ); /*****************/ /* Function 0x0f */ -- cgit From 7b249237b0fee004c61dbf0eda79a3ab68e3ea9e Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 29 Nov 2006 17:55:21 +0000 Subject: r19951: this statement is true... metze (This used to be commit f79d3435936104813f9492a010c57ea99835702f) --- source4/librpc/idl/drsuapi.idl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a01e082267..65bf5fb17d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -198,9 +198,8 @@ interface drsuapi } drsuapi_DsReplicaCoursorCtrEx; typedef [public] bitmap { - /* the _WRITEABLE flag seems to indicate a replication with all attributes, - * and I'm currently always on error when it's set, but w2k and w2k3 uses it - * in the dc join + /* the _WRITEABLE flag indicates a replication with all attributes + * * --metze */ DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010, -- cgit From 99c3d9c3713369abe50bb86e7cd3b9d2fdbba565 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 30 Nov 2006 11:18:18 +0000 Subject: r19967: this unknowns are max_object_count and max_ndr_size metze (This used to be commit 3e6264d872e4fc39a8e0712293492ad413345de9) --- source4/librpc/idl/drsuapi.idl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 65bf5fb17d..f6ba02897c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -235,8 +235,8 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; - uint32 unknown2; - uint32 unknown3; + uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ + uint32 max_ndr_size; /* w2k3 seems to ignore this */ uint32 unknown4; hyper h1; } drsuapi_DsGetNCChangesRequest5; @@ -263,8 +263,8 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; - uint32 unknown2; - uint32 unknown3; + uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ + uint32 max_ndr_size; /* w2k3 seems to ignore this */ uint32 unknown4; hyper h1; uint32 unique_ptr1; @@ -622,7 +622,7 @@ interface drsuapi drsuapi_DsReplicaMetaData meta_data; } drsuapi_DsReplicaLinkedAttribute; - typedef struct { + typedef [public,gensize] struct { GUID guid1; GUID guid2; drsuapi_DsReplicaObjectIdentifier *naming_context; @@ -631,8 +631,9 @@ interface drsuapi drsuapi_DsReplicaCoursor2CtrEx *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 unknown1; - uint32 unknown2; - uint32 unknown3; + uint32 object_count; + /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ + [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; uint32 unknown4; uint32 unknown5; -- cgit From a28b67c7337b4b2b753d6bfad1ed16af04744870 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 7 Dec 2006 15:24:23 +0000 Subject: r20064: - fix pushing of DeReplicaObjectIdentifierX, this lets the DsAddEntry() request work correctly - the error structures all have the same type metze (This used to be commit 3322dbd901106262b22db35e9ef455a08ac2867c) --- source4/librpc/idl/drsuapi.idl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f6ba02897c..a5b3432bdd 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -126,7 +126,7 @@ interface drsuapi /* Function 0x02 */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; - [value(ndr_size_dom_sid(&r->sid, ndr->flags))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid28(&r->sid, ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; @@ -454,7 +454,7 @@ interface drsuapi /* DN String values */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; - [value(ndr_size_dom_sid(&r->sid,ndr->flags))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid28(&r->sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; @@ -1113,10 +1113,10 @@ interface drsuapi [case(1)] drsuapi_DsAddEntryErrorInfo1 error1; /* [case(2)] drsuapi_DsAddEntryErrorInfo2 error2; [case(3)] drsuapi_DsAddEntryErrorInfo3 error3; -*/ [case(4)] drsuapi_DsAddEntryErrorInfoX error4; - [case(5)] drsuapi_DsAddEntryErrorInfoX error5; - [case(6)] drsuapi_DsAddEntryErrorInfoX error6; - [case(7)] drsuapi_DsAddEntryErrorInfoX error7; +*/ [case(4)] drsuapi_DsAddEntryErrorInfoX errorX; + [case(5)] drsuapi_DsAddEntryErrorInfoX errorX; + [case(6)] drsuapi_DsAddEntryErrorInfoX errorX; + [case(7)] drsuapi_DsAddEntryErrorInfoX errorX; } drsuapi_DsAddEntryErrorInfo; typedef struct { -- cgit From 1dfd365d57dcd712d315a1a903c8d3d0a0f0fc12 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 8 Dec 2006 00:11:39 +0000 Subject: r20074: this values seem to be typos in http://msdn2.microsoft.com/en-us/library/ms676264.aspx metze (This used to be commit a52d5f6ed9d92890d2a677d9398450f355165de2) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a5b3432bdd..2947f307a9 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -208,8 +208,8 @@ interface drsuapi DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT = 0x00000080, DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC = 0x00000200, DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS = 0x00000800, - DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS = 0x00010000, - DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET = 0x00020000, + DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS = 0x00001000, /* was 0x00010000, */ + DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET = 0x00002000, /* was 0x00020000, */ DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED = 0x00200000, DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED = 0x01000000, DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS = 0x04000000, -- cgit From 2326af7dbd7a273cb1fee04a6a073e33bb68e094 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 8 Dec 2006 00:26:44 +0000 Subject: r20076: give the guids meanings metze (This used to be commit 3f1e88759cce7b05a117928efe73b353b28e8576) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 2947f307a9..4cd89b75d3 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -595,8 +595,8 @@ interface drsuapi } drsuapi_DsReplicaObjectListItemEx; typedef [public,gensize] struct { - GUID guid1; - GUID guid2; + GUID source_dsa_guid; /* the 'objectGUID' field of the CN=NTDS Settings object */ + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; @@ -623,8 +623,8 @@ interface drsuapi } drsuapi_DsReplicaLinkedAttribute; typedef [public,gensize] struct { - GUID guid1; - GUID guid2; + GUID source_dsa_guid; /* the 'objectGUID' field of the CN=NTDS Settings object */ + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; -- cgit From d3c9737e5b8da23165d65b42d37e16549a80ce70 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 8 Dec 2006 17:34:15 +0000 Subject: r20079: the 2nd guid is the source_dsa invocation_id not the objectGUID, this wasn't noticed because on the 1st dc in the forest both have the same value metze (This used to be commit 527bd9a0a361e19606e25e885b92da316e740bf9) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4cd89b75d3..6a7fc21d3e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -230,7 +230,7 @@ interface drsuapi typedef struct { GUID destination_dsa_guid; - GUID source_dsa_guid; + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; @@ -258,7 +258,7 @@ interface drsuapi typedef struct { GUID destination_dsa_guid; - GUID source_dsa_guid; + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; -- cgit From 3cfa1db71db77d94b9bcc98e170b0eb1d00604d2 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 11 Dec 2006 20:14:49 +0000 Subject: r20111: this is the total object count of the current replication cycle metze (This used to be commit 4daa45f98a3bb6f3c245fe61e05681335ef8b5c6) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 6a7fc21d3e..af197fec7e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -602,7 +602,7 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; - uint32 unknown1; + uint32 total_object_count; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; @@ -630,7 +630,7 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursor2CtrEx *uptodateness_vector; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; - uint32 unknown1; + uint32 total_object_count; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; -- cgit From 5249de851976e274ea02fefc3b71cddb4b5ab207 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 16 Dec 2006 19:05:50 +0000 Subject: r20219: add enough knowledge to display the content of attributeSchema objects metze (This used to be commit 38ae6ce7b9b5dd733e4e838da04d1c570c450c97) --- source4/librpc/idl/drsuapi.idl | 80 +++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 20 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index af197fec7e..fcae97769b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -312,6 +312,7 @@ interface drsuapi * 2.5.6.* => 0x00010000 (standard object classes RFC2256 core.schema) * 1.2.840.113556.1.2.* => 0x00020000 * 1.2.840.113556.1.3.* => 0x00030000 + * 2.5.5.* => 0x00080000 (attributeSyntax OID's) * 1.2.840.113556.1.4.* => 0x00090000 * 1.2.840.113556.1.5.* => 0x000A0000 * 2.16.840.1.113730.3.* => 0x00140000 @@ -374,33 +375,57 @@ interface drsuapi */ typedef [flag(NDR_PAHEX),v1_enum] enum { - DRSUAPI_OBJECTCLASS_top = 0x00010000 + DRSUAPI_OBJECTCLASS_top = 0x00010000, + DRSUAPI_OBJECTCLASS_classSchema = 0x0003000d, + DRSUAPI_OBJECTCLASS_attributeSchema = 0x0003000e } drsuapi_DsObjectClassId; typedef [flag(NDR_PAHEX),v1_enum,public] enum { DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, DRSUAPI_ATTRIBUTE_description = 0x0000000d, DRSUAPI_ATTRIBUTE_member = 0x0000001f, + DRSUAPI_ATTRIBUTE_instanceType = 0x00020001, + DRSUAPI_ATTRIBUTE_whenCreated = 0x00020002, DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, - DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, + DRSUAPI_ATTRIBUTE_governsID = 0x00020016, + DRSUAPI_ATTRIBUTE_attributeID = 0x0002001e, + DRSUAPI_ATTRIBUTE_attributeSyntax = 0x00020020, + DRSUAPI_ATTRIBUTE_isSingleValued = 0x00020021, + DRSUAPI_ATTRIBUTE_rangeLower = 0x00020022, + DRSUAPI_ATTRIBUTE_rangeUpper = 0x00020023, DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, + DRSUAPI_ATTRIBUTE_objectVersion = 0x0002004c, + DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, + DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly = 0x000200a9, + DRSUAPI_ATTRIBUTE_adminDisplayName = 0x000200c2, + DRSUAPI_ATTRIBUTE_adminDescription = 0x000200e2, + DRSUAPI_ATTRIBUTE_oMSyntax = 0x000200e7, DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, + DRSUAPI_ATTRIBUTE_searchFlags = 0x0002014e, + DRSUAPI_ATTRIBUTE_lDAPDisplayName = 0x000201cc, + DRSUAPI_ATTRIBUTE_name = 0x00090001, DRSUAPI_ATTRIBUTE_currentValue = 0x0009001b, DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, + DRSUAPI_ATTRIBUTE_schemaIDGUID = 0x00090094, DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, DRSUAPI_ATTRIBUTE_priorValue = 0x00090064, - DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, DRSUAPI_ATTRIBUTE_supplementalCredentials = 0x0009007d, DRSUAPI_ATTRIBUTE_trustAuthIncoming = 0x00090081, DRSUAPI_ATTRIBUTE_trustAuthOutgoing = 0x00090087, + DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, + DRSUAPI_ATTRIBUTE_sAMAccountName = 0x000900dd, + DRSUAPI_ATTRIBUTE_fSMORoleOwner = 0x00090171, DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, DRSUAPI_ATTRIBUTE_serverReferenceBL = 0x00090204, DRSUAPI_ATTRIBUTE_initialAuthIncoming = 0x0009021b, DRSUAPI_ATTRIBUTE_initialAuthOutgoing = 0x0009021c, + DRSUAPI_ATTRIBUTE_wellKnownObjects = 0x0009026a, + DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet = 0x0009027f, DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, + DRSUAPI_ATTRIBUTE_gPLink = 0x0009037b, DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber = 0x000906f6, DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, @@ -516,16 +541,28 @@ interface drsuapi typedef [nodiscriminant] union { [case(DRSUAPI_ATTRIBUTE_objectClass)] drsuapi_DsAttributeValueCtrObjectClassId object_class_id; + [case(DRSUAPI_ATTRIBUTE_governsID)] drsuapi_DsAttributeValueCtrUINT32 oid; + [case(DRSUAPI_ATTRIBUTE_attributeID)] drsuapi_DsAttributeValueCtrUINT32 oid; + [case(DRSUAPI_ATTRIBUTE_attributeSyntax)] drsuapi_DsAttributeValueCtrUINT32 oid; + + /* BOOL */ + [case(DRSUAPI_ATTRIBUTE_isSingleValued)] drsuapi_DsAttributeValueCtrUINT32 boolean; + [case(DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly)] drsuapi_DsAttributeValueCtrUINT32 boolean; + [case(DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet)] drsuapi_DsAttributeValueCtrUINT32 boolean; /* UINT32 */ - [case(0x00020001)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(0x0002004c)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(0x000200a9)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(0x00090177)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(0x000905b3)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_instanceType)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_rangeLower)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_rangeUpper)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_objectVersion)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_oMSyntax)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_searchFlags)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_systemFlags)] drsuapi_DsAttributeValueCtrUINT32 uint32; + [case(DRSUAPI_ATTRIBUTE_msDS_Behavior_Version)] drsuapi_DsAttributeValueCtrUINT32 uint32; /* GUID */ [case(DRSUAPI_ATTRIBUTE_invocationId)] drsuapi_DsAttributeValueCtrGUID guid; + [case(DRSUAPI_ATTRIBUTE_schemaIDGUID)] drsuapi_DsAttributeValueCtrGUID guid; /* SID */ [case(DRSUAPI_ATTRIBUTE_objectSid)] drsuapi_DsAttributeValueCtrSID sid; @@ -535,24 +572,27 @@ interface drsuapi /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(0x00090001)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(0x000900dd)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(0x0009037b)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_adminDescription)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_lDAPDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_name)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_sAMAccountName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; + [case(DRSUAPI_ATTRIBUTE_gPLink)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; /* DN String */ [case(DRSUAPI_ATTRIBUTE_member)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x0002000e)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x00020024)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x00090171)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x0009071c)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x0009072c)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x0009026a)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x00090203)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(0x00090204)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_dMDLocation)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_fSMORoleOwner)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_wellKnownObjects)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_serverReference)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_serverReferenceBL)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; + [case(DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; /* NTTIME_1sec */ - [case(0x00020002)] drsuapi_DsAttributeValueCtrNTTIME_1sec nttime_1sec; + [case(DRSUAPI_ATTRIBUTE_whenCreated)] drsuapi_DsAttributeValueCtrNTTIME_1sec nttime_1sec; /* the default is the DATA_BLOB */ [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; -- cgit From 2e8746cc14c75c8958ea15d82c7cfd982a3bb6e0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sun, 17 Dec 2006 19:36:09 +0000 Subject: r20230: I found more mappings of OID string to uint32 id metze (This used to be commit 3d51ce92c272582e19046337ea6b8b2acd60997d) --- source4/librpc/idl/drsuapi.idl | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index fcae97769b..4c37036e62 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -319,17 +319,15 @@ interface drsuapi * 0.9.2342.19200300.100.1.* => 0x00150000 * 2.16.840.1.113730.3.1.* => 0x00160000 * 1.2.840.113556.1.5.7000.* => 0x00170000 + * 2.5.21.* => 0x00180000 (attrs for SubSchema) + * 2.5.18.* => 0x00190000 (createTimeStamp,modifyTimeStamp, SubSchema) * 2.5.20.* => 0x001A0000 + * 1.3.6.1.4.1.1466.101.119.* => 0x001B0000 (dynamicObject, entryTTL) * 2.16.840.1.113730.3.2.* => 0x001C0000 * 1.3.6.1.4.1.250.1.* => 0x001D0000 + * 1.2.840.113549.1.9.* => 0x001E0000 (unstructuredAddress,unstructuredName) * 0.9.2342.19200300.100.4.* => 0x001F0000 * - * 1.2.840.113549.1.9.* (unstructuredAddress,unstructuredName) - * 1.3.6.1.4.1.1466.101.119.2 (dynamicObject) - * 1.3.6.1.4.1.1466.101.119.3 (entryTTL) - * 2.5.18.* (createTimeStamp,modifyTimeStamp, SubSchema) - * 2.5.21.* (attrs for SubSchema) - * * Here's a list of used 'attributeSyntax' OID's * * 2.5.5.1 => Object(DS-DN) string -- cgit From 88ef4672826f05bd357a805673337ec22708d681 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 19 Dec 2006 13:38:42 +0000 Subject: r20251: I found out that the oid-prefix to uint32-id-prefix mapping is transferred in replication replies, but I don't know the exact encoding. for example the oids are transferred as: 2.5.4 => uint8_t v[] = { 0x55, 0x04 }; 2.5.5 => uint8_t v[] = { 0x55, 0x05 }; 2.5.6 => uint8_t v[] = { 0x55, 0x06 }; 2.5.18 => uint8_t v[] = { 0x55, 0x12 }; 2.5.20 => uint8_t v[] = { 0x55, 0x14 }; 2.5.21 => uint8_t v[] = { 0x55, 0x15 }; 1.2.840.113556.1.2 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x14, 0x01, 0x02 }; 1.2.840.113556.1.3 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x14, 0x01, 0x03 }; 1.2.840.113556.1.4 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x14, 0x01, 0x04 }; 1.2.840.113556.1.5 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x14, 0x01, 0x05 }; 1.2.840.113556.1.5.7000 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x14, 0x01, 0x05, 0xb6, 0x58 }; 1.2.840.113549.1.9 => uint8_t v[] = { 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09 }; 2.16.840.1.113730.3 => uint8_t v[] = { 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x03 }; 2.16.840.1.113730.3.1 => uint8_t v[] = { 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x03, 0x01 }; 2.16.840.1.113730.3.2 => uint8_t v[] = { 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x03, 0x02 }; 0.9.2342.19200300.100.1 => uint8_t v[] = { 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x01 }; 0.9.2342.19200300.100.4 => uint8_t v[] = { 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x04 }; 1.3.6.1.4.1.250.1 => uint8_t v[] = { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x81, 0x7a, 0x01 }; 1.3.6.1.4.1.1466.101.119=> uint8_t v[] = { 0x2b, 0x06, 0x01, 0x04, 0x01, 0x8b, 0x3a, 0x65, 0x77 }; if someone knows how the encoding works, please tell me:-) I assume some ASN.1 encoding... metze (This used to be commit aa720a15319392fee5c532959192d0df5bf4c718) --- source4/librpc/idl/drsuapi.idl | 117 +++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 57 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4c37036e62..cc2787523c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -241,61 +241,9 @@ interface drsuapi hyper h1; } drsuapi_DsGetNCChangesRequest5; - typedef [flag(NDR_PAHEX)] struct { - [range(0,10000)] uint32 length; - [size_is(length)] uint8 *byte_array; - } drsuapi_DsGetNCChangesRequest_Ctr14; - - typedef struct { - uint32 unknown1; - drsuapi_DsGetNCChangesRequest_Ctr14 data; - } drsuapi_DsGetNCChangesRequest_Ctr13; - - typedef struct { - [range(0,0x100000)] uint32 count; - [size_is(count)] drsuapi_DsGetNCChangesRequest_Ctr13 *array; - } drsuapi_DsGetNCChangesRequest_Ctr12; - - typedef struct { - GUID destination_dsa_guid; - GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ - [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; - drsuapi_DsReplicaHighWaterMark highwatermark; - drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; - drsuapi_DsReplicaNeighbourFlags replica_flags; - uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ - uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; - uint32 unique_ptr1; - uint32 unique_ptr2; - drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; - } drsuapi_DsGetNCChangesRequest8; - - typedef [switch_type(int32)] union { - [case(5)] drsuapi_DsGetNCChangesRequest5 req5; - [case(8)] drsuapi_DsGetNCChangesRequest8 req8; - } drsuapi_DsGetNCChangesRequest; - - typedef [public] struct { - GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ - hyper highest_usn; /* updated after a full replication cycle */ - NTTIME last_sync_success; - } drsuapi_DsReplicaCoursor2; - - typedef struct { - uint32 u1; - uint32 u2; - [range(0,0x100000)] uint32 count; - uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; - } drsuapi_DsReplicaCoursor2CtrEx; - /* - * In DRSUAPI the objectClasses and attributes - * are identified by uint32 values, but in the schema - * they are identified by the governsID (objectClasses) - * and attributeID (attributes) + * In DRSUAPI all attributes with syntax 2.5.5.2 + * are identified by uint32 values * * the following table shows the mapping used between the two representations * e.g. - objectClass 'nTDSDSA' has governsID: 1.2.840.113556.1.5.7000.47 @@ -306,6 +254,9 @@ interface drsuapi * - the mapping table gives a UINT32-prefix: 0x00170000 * - and the UINT32-ID is 0x0017002F = 0x00170000 | 0x2F * + * This prefix mapping table is replied in the drsuapi_DsReplicaOIDMapping_Ctr + * array. The following are the default mappings of w2k3 + * * OID-prefix => UINT32-Id prefix * * 2.5.4.* => 0x00000000 (standard attributes RFC2256 core.schema) @@ -334,7 +285,10 @@ interface drsuapi * struct drsuapi_DsObjectIdentifier3 * * 2.5.5.2 => OID-string - * => mayContain, mustContain... also have this syntax but have string values + * => all values are represented as uint32 values in drsuapi + * => governsID, attributeID and attributeSyntax returned as OID-Strings in LDAP + * => mayContain, mustContain and all other attributes with 2.5.5.2 syntax + * are returned as attribute names * * 2.5.5.4 => String(Teletex) case-insensitive string with teletex charset * @@ -371,6 +325,20 @@ interface drsuapi * * 2.5.5.17 => dom_sid */ + typedef [flag(NDR_PAHEX)] struct { + [range(0,10000)] uint32 length; + [size_is(length)] uint8 *data; + } drsuapi_DsReplicaOID; + + typedef struct { + uint32 id_prefix; + drsuapi_DsReplicaOID oid; + } drsuapi_DsReplicaOIDMapping; + + typedef struct { + [range(0,0x100000)] uint32 num_mappings; + [size_is(num_mappings)] drsuapi_DsReplicaOIDMapping *mappings; + } drsuapi_DsReplicaOIDMapping_Ctr; typedef [flag(NDR_PAHEX),v1_enum] enum { DRSUAPI_OBJECTCLASS_top = 0x00010000, @@ -430,6 +398,41 @@ interface drsuapi DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; + typedef struct { + GUID destination_dsa_guid; + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ + [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; + drsuapi_DsReplicaHighWaterMark highwatermark; + drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; + drsuapi_DsReplicaNeighbourFlags replica_flags; + uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ + uint32 max_ndr_size; /* w2k3 seems to ignore this */ + uint32 unknown4; + hyper h1; + uint32 unique_ptr1; + uint32 unique_ptr2; + drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; + } drsuapi_DsGetNCChangesRequest8; + + typedef [switch_type(int32)] union { + [case(5)] drsuapi_DsGetNCChangesRequest5 req5; + [case(8)] drsuapi_DsGetNCChangesRequest8 req8; + } drsuapi_DsGetNCChangesRequest; + + typedef [public] struct { + GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ + hyper highest_usn; /* updated after a full replication cycle */ + NTTIME last_sync_success; + } drsuapi_DsReplicaCoursor2; + + typedef struct { + uint32 u1; + uint32 u2; + [range(0,0x100000)] uint32 count; + uint32 u3; + [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; + } drsuapi_DsReplicaCoursor2CtrEx; + /* Generic DATA_BLOB values */ typedef struct { [range(0,10485760)] uint32 length; @@ -639,7 +642,7 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; - drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; + drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; uint32 total_object_count; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ @@ -667,7 +670,7 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCoursor2CtrEx *uptodateness_vector; - drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; + drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; uint32 total_object_count; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ -- cgit From aaccc47c0e827668e9d2df9626397bdcf801efe6 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 20 Dec 2006 13:05:13 +0000 Subject: r20278: make it possible to use oid strings in the drsuapi instead of uint8_t arrays with ber encoded oid's metze (This used to be commit bc13b3690166b29df246cc4778b378e9cf2a22d7) --- source4/librpc/idl/drsuapi.idl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index cc2787523c..119e0b1b3e 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -8,8 +8,9 @@ import "security.idl", "misc.idl", "samr.idl"; endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), authservice("ldap"), helpstring("Active Directory Replication"), + helper("librpc/ndr/ndr_drsuapi.h"), pointer_default(unique) -] +] interface drsuapi { declare bitmap samr_GroupAttrs; @@ -325,9 +326,9 @@ interface drsuapi * * 2.5.5.17 => dom_sid */ - typedef [flag(NDR_PAHEX)] struct { - [range(0,10000)] uint32 length; - [size_is(length)] uint8 *data; + typedef [nopush,nopull] struct { + [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(r->oid, 0))] uint32 __ndr_size; + [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */ } drsuapi_DsReplicaOID; typedef struct { -- cgit From 400a56d6dd2f02569a626f4507ec06fa49cf0839 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 22 Dec 2006 07:04:06 +0000 Subject: r20315: Implement the server side of DsGetDomainControllerInfo. This is a supprisingly complex call... It turns out that the in/out parameter 'level' is not in/out, but set seperatly by the server-side code from r->req.req1.level. This commit also breaks out some common code from samldb into samdb. Andrew Bartlett (This used to be commit 2eb9e6445c64840399171f4f56b1e43786dbcfa7) --- source4/librpc/idl/drsuapi.idl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 119e0b1b3e..fe0e98fe0d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1093,9 +1093,10 @@ interface drsuapi WERROR drsuapi_DsGetDomainControllerInfo( [in] policy_handle *bind_handle, - [in, out] int32 level, + [in] int32 level, [in,switch_is(level)] drsuapi_DsGetDCInfoRequest req, - [out,switch_is(level)] drsuapi_DsGetDCInfoCtr ctr + [out] int32 level_out, + [out,switch_is(level_out)] drsuapi_DsGetDCInfoCtr ctr ); /*****************/ -- cgit From ea4c64388bb00f41a083fb37a2689ae09f33399b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 27 Dec 2006 02:01:38 +0000 Subject: r20353: Restructure the DRSUAPI DsGetDomainControllerInfo test, because as usual things are more complex than they appear. Also remove the incorrect server-side implementation, which blindly assumed some sense of consistancy across the API switch levels. Andrew Bartlett (This used to be commit 79941adbff843f5027dacd31b972deca4a1557ec) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index fe0e98fe0d..02cafb64c1 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1065,13 +1065,13 @@ interface drsuapi } drsuapi_DsGetDCInfoCtr2; typedef struct { - uint32 unknown1; + [flag(BIG_ENDIAN)] ipv4address last_logon_ipv4_ip; uint32 unknown2; uint32 unknown3; uint32 unknown4; uint32 unknown5; uint32 unknown6; - [charset(UTF16),string] uint16 *server_nt4_account; + [charset(UTF16),string] uint16 *nt4_account; } drsuapi_DsGetDCInfo01; typedef struct { -- cgit From c70a3f6706c9f7ec45ec805052687dd70eb89c6b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 27 Dec 2006 17:57:20 +0000 Subject: r20359: level -1 of DsGetDomainControllerInfo gives back a list of all active connections to the Directory Service Agent (DSA) (This can be LDAP or DRSUAPI connections) abartlet: you had just luck by using flag(BIG_ENDIAN) as BIG_ENDIAN is defined in , it should be flag(NDR_BIG_ENDIAN)... metze (This used to be commit c7e639763de1f8ddccfb954227feeaddb7386edc) --- source4/librpc/idl/drsuapi.idl | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 02cafb64c1..3df247a3ef 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1064,31 +1064,44 @@ interface drsuapi [size_is(count)] drsuapi_DsGetDCInfo2 *array; } drsuapi_DsGetDCInfoCtr2; + /* + * this represents an active connection to the + * Directory System Agent (DSA) + * this can be via LDAP or DRSUAPI + */ typedef struct { - [flag(BIG_ENDIAN)] ipv4address last_logon_ipv4_ip; + [flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address; uint32 unknown2; - uint32 unknown3; + uint32 connection_time; /* in seconds */ uint32 unknown4; uint32 unknown5; uint32 unknown6; - [charset(UTF16),string] uint16 *nt4_account; - } drsuapi_DsGetDCInfo01; + /* + * client_account can be the following: + * "W2K3\Administrator" + * "Administrator@W2K3" + * "cn=Administrator,cn=Users,DC=w2k3,DC=vmnet1,DC=vm,DC=base" + * "" + * or NULL + */ + [charset(UTF16),string] uint16 *client_account; + } drsuapi_DsGetDCConnection01; typedef struct { [range(0,10000)] uint32 count; - [size_is(count)] drsuapi_DsGetDCInfo01 *array; - } drsuapi_DsGetDCInfoCtr01; + [size_is(count)] drsuapi_DsGetDCConnection01 *array; + } drsuapi_DsGetDCConnectionCtr01; typedef [v1_enum] enum { DRSUAPI_DC_INFO_CTR_1 = 1, DRSUAPI_DC_INFO_CTR_2 = 2, - DRSUAPI_DC_INFO_CTR_01 = -1 + DRSUAPI_DC_CONNECTION_CTR_01 = -1 } drsuapi_DsGetDCInfoCtrLevels; typedef [switch_type(int32)] union { [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; - [case(DRSUAPI_DC_INFO_CTR_01)] drsuapi_DsGetDCInfoCtr01 ctr01; + [case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01; } drsuapi_DsGetDCInfoCtr; WERROR drsuapi_DsGetDomainControllerInfo( -- cgit From b5aa81635d8eaf200d88fd37ee11c31dc9042659 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 27 Dec 2006 18:00:20 +0000 Subject: r20360: level -4 of DsReplicaGetInfo(), which gives back all open bind handles returned by DsBind() on all drsuapi connection also contains the client ip address. Also the u1 value of the clients DsBindInfoX structure is returned in u5 here... metze (This used to be commit 1adb0fb291d788d0bf10a49b05970ac72eb4764e) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 3df247a3ef..d60c3dd78a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1446,8 +1446,8 @@ interface drsuapi uint32 u3; GUID bind_guid; NTTIME_1sec bind_time; - uint32 u4; /* flags? */ - uint32 u5; + [flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address; + uint32 u5; /* this is the same value the client used as u1 in the DsBindInfoX struct */ } drsuapi_DsReplicaConnection04; typedef struct { -- cgit From 105d18eb305197366172943c8037e27a96b24782 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 28 Dec 2006 22:51:56 +0000 Subject: r20395: Decode more unknowns in the IDL. These are language and codepage IDs! Try to pass more of the CrackNames test. Make the test quieter. Andrew Bartlett (This used to be commit a6bbfebf52f53f99b0edf52d3c23b72785b97469) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index d60c3dd78a..4b78d848ed 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -915,8 +915,8 @@ interface drsuapi } drsuapi_DsNameString; typedef struct { - uint32 unknown1; /* 0x000004e4 */ - uint32 unknown2; /* 0x00000407 */ + uint32 codepage; /* 0x000004e4 - 1252 is german codepage*/ + uint32 language; /* 0x00000407 - german language ID*/ drsuapi_DsNameFlags format_flags; drsuapi_DsNameFormat format_offered; drsuapi_DsNameFormat format_desired; -- cgit From bb75710d40e11f127270e2d39c957db64da63a60 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 30 Dec 2006 10:42:01 +0000 Subject: r20417: - fix pushing of drsuapi_DsAttributeValueDataBlob - make drsuapi_DsReplicaAttribute public so that the ndr_print_* function can be used from the outside metze (This used to be commit f12776b9a9de55d5c67335d5e59c0d83a74ac939) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4b78d848ed..758e5f80fe 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -436,7 +436,7 @@ interface drsuapi /* Generic DATA_BLOB values */ typedef struct { - [range(0,10485760)] uint32 length; + [range(0,10485760),value(ndr_size_DATA_BLOB(0,r->data,0))] uint32 length; DATA_BLOB *data; } drsuapi_DsAttributeValueDataBlob; @@ -600,7 +600,7 @@ interface drsuapi [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; } drsuapi_DsReplicaAttributeValueCtr; - typedef struct { + typedef [public] struct { drsuapi_DsAttributeId attid; [switch_is(attid)] drsuapi_DsReplicaAttributeValueCtr value_ctr; } drsuapi_DsReplicaAttribute; -- cgit From 2206a7d592800a9f299ab3a5ce2e7b55919f46bc Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 30 Dec 2006 10:51:04 +0000 Subject: r20418: start to get step by step rid of the union for the attribute specific attribute values. start with ntSecurityDescriptor metze (This used to be commit c72f5a16b4de2b8cc4f4a9c21b0dc3915a1d6c9f) --- source4/librpc/idl/drsuapi.idl | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 758e5f80fe..1c3b583f0b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -519,17 +519,6 @@ interface drsuapi [size_is(num_values)] drsuapi_DsAttributeValueSID *values; } drsuapi_DsAttributeValueCtrSID; - /* SecurityDescriptor values */ - typedef struct { - [range(0,10485760),value(ndr_size_security_descriptor(sd,ndr->flags))] uint32 __ndr_size; - [subcontext(4)] security_descriptor *sd; - } drsuapi_DsAttributeValueSecurityDescriptor; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueSecurityDescriptor *values; - } drsuapi_DsAttributeValueCtrSecurityDescriptor; - /* NTTIME_1sec values */ typedef struct { [range(0,10485760),value(8)] uint32 __ndr_size; @@ -569,9 +558,6 @@ interface drsuapi /* SID */ [case(DRSUAPI_ATTRIBUTE_objectSid)] drsuapi_DsAttributeValueCtrSID sid; - /* SecurityDescriptor */ - [case(DRSUAPI_ATTRIBUTE_ntSecurityDescriptor)] drsuapi_DsAttributeValueCtrSecurityDescriptor security_descriptor; - /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; -- cgit From 1b6de440b4413829e97887e9ad20d50b1f3807ae Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 30 Dec 2006 11:46:22 +0000 Subject: r20419: remove unused ojectSid and NTTIME_1sec cases metze (This used to be commit a801041f1f03b97154d79139d764010453bd9263) --- source4/librpc/idl/drsuapi.idl | 28 ---------------------------- 1 file changed, 28 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 1c3b583f0b..d7b4e1705b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -508,28 +508,6 @@ interface drsuapi [size_is(num_values)] drsuapi_DsAttributeValueGUID *values; } drsuapi_DsAttributeValueCtrGUID; - /* SID values */ - typedef struct { - [range(0,10485760),value(ndr_size_dom_sid(sid,ndr->flags))] uint32 __ndr_size; - [subcontext(4)] dom_sid *sid; - } drsuapi_DsAttributeValueSID; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueSID *values; - } drsuapi_DsAttributeValueCtrSID; - - /* NTTIME_1sec values */ - typedef struct { - [range(0,10485760),value(8)] uint32 __ndr_size; - [subcontext(4)] NTTIME_1sec *time; - } drsuapi_DsAttributeValueNTTIME_1sec; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueNTTIME_1sec *values; - } drsuapi_DsAttributeValueCtrNTTIME_1sec; - typedef [nodiscriminant] union { [case(DRSUAPI_ATTRIBUTE_objectClass)] drsuapi_DsAttributeValueCtrObjectClassId object_class_id; [case(DRSUAPI_ATTRIBUTE_governsID)] drsuapi_DsAttributeValueCtrUINT32 oid; @@ -555,9 +533,6 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_invocationId)] drsuapi_DsAttributeValueCtrGUID guid; [case(DRSUAPI_ATTRIBUTE_schemaIDGUID)] drsuapi_DsAttributeValueCtrGUID guid; - /* SID */ - [case(DRSUAPI_ATTRIBUTE_objectSid)] drsuapi_DsAttributeValueCtrSID sid; - /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; @@ -579,9 +554,6 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; - /* NTTIME_1sec */ - [case(DRSUAPI_ATTRIBUTE_whenCreated)] drsuapi_DsAttributeValueCtrNTTIME_1sec nttime_1sec; - /* the default is the DATA_BLOB */ [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; } drsuapi_DsReplicaAttributeValueCtr; -- cgit From 7ffdd1246d10cf969fe733e05595664921cdfb81 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 1 Jan 2007 19:35:03 +0000 Subject: r20453: add conversation for the DN_BINARY attribute syntax the ldb_to_drsuapi version need to be completed, but it's currently not used... metze (This used to be commit 9b31e8c1f73aaf71522e33174c8c5415a95ac626) --- source4/librpc/idl/drsuapi.idl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index d7b4e1705b..0176fdd709 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -487,6 +487,16 @@ interface drsuapi [flag(STR_SIZE4|STR_CHARLEN)] string dn; } drsuapi_DsReplicaObjectIdentifier3; + typedef [public,gensize] struct { + [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags))] uint32 __ndr_size; + [value(ndr_size_dom_sid28(&r->sid,ndr->flags))] uint32 __ndr_size_sid; + GUID guid; + dom_sid28 sid; + [flag(STR_SIZE4|STR_CHARLEN)] string dn; + [value(r->binary.length + 4)] uint32 __ndr_size_binary; + [flag(NDR_REMAINING)] DATA_BLOB binary; + } drsuapi_DsReplicaObjectIdentifier3Binary; + typedef struct { [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size; [subcontext(4),subcontext_size(__ndr_size)] drsuapi_DsReplicaObjectIdentifier3 *object; @@ -548,7 +558,6 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_dMDLocation)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_fSMORoleOwner)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_wellKnownObjects)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_serverReference)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_serverReferenceBL)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; -- cgit From 391d97168fdd2ef920b4084e5d1e8fbd4c43f178 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Jan 2007 13:18:09 +0000 Subject: r20473: remove special case for boolean values metze (This used to be commit 8d80629c5dde44a06b597e1247ec96ef1cd3f2e1) --- source4/librpc/idl/drsuapi.idl | 5 ----- 1 file changed, 5 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 0176fdd709..c7c8bc3f7c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -524,11 +524,6 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_attributeID)] drsuapi_DsAttributeValueCtrUINT32 oid; [case(DRSUAPI_ATTRIBUTE_attributeSyntax)] drsuapi_DsAttributeValueCtrUINT32 oid; - /* BOOL */ - [case(DRSUAPI_ATTRIBUTE_isSingleValued)] drsuapi_DsAttributeValueCtrUINT32 boolean; - [case(DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly)] drsuapi_DsAttributeValueCtrUINT32 boolean; - [case(DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet)] drsuapi_DsAttributeValueCtrUINT32 boolean; - /* UINT32 */ [case(DRSUAPI_ATTRIBUTE_instanceType)] drsuapi_DsAttributeValueCtrUINT32 uint32; [case(DRSUAPI_ATTRIBUTE_rangeLower)] drsuapi_DsAttributeValueCtrUINT32 uint32; -- cgit From 2754a73d221d13095a4228fede25ffc64134beb5 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Jan 2007 13:54:37 +0000 Subject: r20475: remove special case for GUID values metze (This used to be commit b7ab1c0039cd8000861cd89ca072d9d2b0bbf9de) --- source4/librpc/idl/drsuapi.idl | 4 ---- 1 file changed, 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c7c8bc3f7c..dbe0e92be0 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -534,10 +534,6 @@ interface drsuapi [case(DRSUAPI_ATTRIBUTE_systemFlags)] drsuapi_DsAttributeValueCtrUINT32 uint32; [case(DRSUAPI_ATTRIBUTE_msDS_Behavior_Version)] drsuapi_DsAttributeValueCtrUINT32 uint32; - /* GUID */ - [case(DRSUAPI_ATTRIBUTE_invocationId)] drsuapi_DsAttributeValueCtrGUID guid; - [case(DRSUAPI_ATTRIBUTE_schemaIDGUID)] drsuapi_DsAttributeValueCtrGUID guid; - /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; -- cgit From d70852659b4dbef9979be81f5d42e5587fc94c75 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Jan 2007 14:14:35 +0000 Subject: r20476: get rid of extra case for uint32 values metze (This used to be commit 13ccd405b5dbb595e5ab67879260462e5a767a8b) --- source4/librpc/idl/drsuapi.idl | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index dbe0e92be0..624835121f 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -519,21 +519,6 @@ interface drsuapi } drsuapi_DsAttributeValueCtrGUID; typedef [nodiscriminant] union { - [case(DRSUAPI_ATTRIBUTE_objectClass)] drsuapi_DsAttributeValueCtrObjectClassId object_class_id; - [case(DRSUAPI_ATTRIBUTE_governsID)] drsuapi_DsAttributeValueCtrUINT32 oid; - [case(DRSUAPI_ATTRIBUTE_attributeID)] drsuapi_DsAttributeValueCtrUINT32 oid; - [case(DRSUAPI_ATTRIBUTE_attributeSyntax)] drsuapi_DsAttributeValueCtrUINT32 oid; - - /* UINT32 */ - [case(DRSUAPI_ATTRIBUTE_instanceType)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_rangeLower)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_rangeUpper)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_objectVersion)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_oMSyntax)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_searchFlags)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_systemFlags)] drsuapi_DsAttributeValueCtrUINT32 uint32; - [case(DRSUAPI_ATTRIBUTE_msDS_Behavior_Version)] drsuapi_DsAttributeValueCtrUINT32 uint32; - /* UnicodeString */ [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; -- cgit From b885bc4a20e99a77d433b46c7af68cb0b5914208 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Jan 2007 14:53:45 +0000 Subject: r20477: get rid of the spcial case for unicode strings metze (This used to be commit ececda44c74ae4ccbaa0492acb67a88aa5c05126) --- source4/librpc/idl/drsuapi.idl | 9 --------- 1 file changed, 9 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 624835121f..79f6e6928a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -519,15 +519,6 @@ interface drsuapi } drsuapi_DsAttributeValueCtrGUID; typedef [nodiscriminant] union { - /* UnicodeString */ - [case(DRSUAPI_ATTRIBUTE_description)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_adminDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_adminDescription)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_lDAPDisplayName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_name)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_sAMAccountName)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - [case(DRSUAPI_ATTRIBUTE_gPLink)] drsuapi_DsAttributeValueCtrUnicodeString unicode_string; - /* DN String */ [case(DRSUAPI_ATTRIBUTE_member)] drsuapi_DsAttributeValueCtrDNString dn_string; [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; -- cgit From 16d6d8d4c5d0d6e0b3aa6b94e20c2ed3317d1fbd Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Jan 2007 19:29:32 +0000 Subject: r20484: get rid of the special case for DN strings metze (This used to be commit 4c2addf2dd5b74fa0026249ce373ff4becaaef40) --- source4/librpc/idl/drsuapi.idl | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 79f6e6928a..46fa90509b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -519,17 +519,6 @@ interface drsuapi } drsuapi_DsAttributeValueCtrGUID; typedef [nodiscriminant] union { - /* DN String */ - [case(DRSUAPI_ATTRIBUTE_member)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_objectCategory)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_dMDLocation)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_fSMORoleOwner)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_serverReference)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_serverReferenceBL)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; - [case(DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs)] drsuapi_DsAttributeValueCtrDNString dn_string; - /* the default is the DATA_BLOB */ [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; } drsuapi_DsReplicaAttributeValueCtr; -- cgit From 536ca21c55643a06e53053c2576697bf6abef2b0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 3 Jan 2007 09:58:14 +0000 Subject: r20504: we handle the attribute values always as DATA_BLOB's and don't need the union with the attribute id as switch anymore metze (This used to be commit d47c81923d0731edd314215c6f0b2eb3d1ee252d) --- source4/librpc/idl/drsuapi.idl | 81 +++++------------------------------------- 1 file changed, 9 insertions(+), 72 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 46fa90509b..104f00febd 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -436,47 +436,14 @@ interface drsuapi /* Generic DATA_BLOB values */ typedef struct { - [range(0,10485760),value(ndr_size_DATA_BLOB(0,r->data,0))] uint32 length; - DATA_BLOB *data; - } drsuapi_DsAttributeValueDataBlob; + [range(0,10485760),value(ndr_size_DATA_BLOB(0,r->blob,0))] uint32 __ndr_size; + DATA_BLOB *blob; + } drsuapi_DsAttributeValue; typedef struct { [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueDataBlob *values; - } drsuapi_DsAttributeValueCtrDataBlob; - - /* objectClass values */ - typedef struct { - [range(0,10485760),value(4)] uint32 __ndr_size; - [subcontext(4)] drsuapi_DsObjectClassId *objectClassId; - } drsuapi_DsAttributeValueObjectClassId; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueObjectClassId *values; - } drsuapi_DsAttributeValueCtrObjectClassId; - - /* uint32 values */ - typedef struct { - [range(0,10485760),value(4)] uint32 __ndr_size; - [subcontext(4)] uint32 *value; - } drsuapi_DsAttributeValueUINT32; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueUINT32 *values; - } drsuapi_DsAttributeValueCtrUINT32; - - /* UnicodeString values */ - typedef struct { - [range(0,10485760)] uint32 length; - [subcontext(4)] nstring *string; - } drsuapi_DsAttributeValueUnicodeString; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueUnicodeString *values; - } drsuapi_DsAttributeValueCtrUnicodeString; + [size_is(num_values)] drsuapi_DsAttributeValue *values; + } drsuapi_DsAttributeValueCtr; /* DN String values */ typedef [public,gensize] struct { @@ -497,35 +464,9 @@ interface drsuapi [flag(NDR_REMAINING)] DATA_BLOB binary; } drsuapi_DsReplicaObjectIdentifier3Binary; - typedef struct { - [range(0,10485760),value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(object, ndr->flags))] uint32 __ndr_size; - [subcontext(4),subcontext_size(__ndr_size)] drsuapi_DsReplicaObjectIdentifier3 *object; - } drsuapi_DsAttributeValueDNString; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueDNString *values; - } drsuapi_DsAttributeValueCtrDNString; - - /* GUID values */ - typedef struct { - [range(0,10485760),value(ndr_size_GUID(guid, ndr->flags))] uint32 __ndr_size; - [subcontext(4)] GUID *guid; - } drsuapi_DsAttributeValueGUID; - - typedef struct { - [range(0,10485760)] uint32 num_values; - [size_is(num_values)] drsuapi_DsAttributeValueGUID *values; - } drsuapi_DsAttributeValueCtrGUID; - - typedef [nodiscriminant] union { - /* the default is the DATA_BLOB */ - [default] drsuapi_DsAttributeValueCtrDataBlob data_blob; - } drsuapi_DsReplicaAttributeValueCtr; - typedef [public] struct { drsuapi_DsAttributeId attid; - [switch_is(attid)] drsuapi_DsReplicaAttributeValueCtr value_ctr; + drsuapi_DsAttributeValueCtr value_ctr; } drsuapi_DsReplicaAttribute; typedef struct { @@ -576,13 +517,9 @@ interface drsuapi } drsuapi_DsGetNCChangesCtr1; typedef struct { - drsuapi_DsReplicaObjectIdentifier *dn; - drsuapi_DsAttributeId attid; - /* this dn_string, depends on the attid, maybe could be another - * attribute syntax - */ - drsuapi_DsAttributeValueDNString dn_string; - uint32 u1; + drsuapi_DsReplicaObjectIdentifier *identifier; + drsuapi_DsReplicaAttribute attribute; + uint32 unknown1; NTTIME_1sec time1; drsuapi_DsReplicaMetaData meta_data; } drsuapi_DsReplicaLinkedAttribute; -- cgit From f06f5e3deea235161bad07ce2376dcb13ccfecc0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 3 Jan 2007 11:42:28 +0000 Subject: r20506: - fix parsing of LinkedAttribute values - I also found the meaning of the time field - and the uint32 field metze (This used to be commit f3c83dfb0199c8914f9c0ce53b045268b7e0e88f) --- source4/librpc/idl/drsuapi.idl | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 104f00febd..03b8154bf0 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -516,11 +516,20 @@ interface drsuapi uint32 unknown4; } drsuapi_DsGetNCChangesCtr1; - typedef struct { + /* + * if the DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE flag + * isn't there it means the value is deleted + */ + typedef [public] bitmap { + DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE = 0x00000001 + } drsuapi_DsLinkedAttributeFlags; + + typedef [public] struct { drsuapi_DsReplicaObjectIdentifier *identifier; - drsuapi_DsReplicaAttribute attribute; - uint32 unknown1; - NTTIME_1sec time1; + drsuapi_DsAttributeId attid; + drsuapi_DsAttributeValue value; + drsuapi_DsLinkedAttributeFlags flags; + NTTIME_1sec orginating_add_time; drsuapi_DsReplicaMetaData meta_data; } drsuapi_DsReplicaLinkedAttribute; -- cgit From bc32b30011ec0b35d40f659675f9e4cc28ec3c79 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 3 Jan 2007 15:18:17 +0000 Subject: r20510: fix spelling metze (This used to be commit 58066e2252001b7689705d296a16438733cfdfc4) --- source4/librpc/idl/drsuapi.idl | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 03b8154bf0..4ba2207f82 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -188,15 +188,15 @@ interface drsuapi typedef [public] struct { GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ hyper highest_usn; /* updated after a full replication cycle */ - } drsuapi_DsReplicaCoursor; + } drsuapi_DsReplicaCursor; typedef struct { uint32 u1; uint32 u2; [range(0,0x100000)] uint32 count; uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursor coursors[]; - } drsuapi_DsReplicaCoursorCtrEx; + [size_is(count)] drsuapi_DsReplicaCursor cursors[]; + } drsuapi_DsReplicaCursorCtrEx; typedef [public] bitmap { /* the _WRITEABLE flag indicates a replication with all attributes @@ -234,7 +234,7 @@ interface drsuapi GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; - drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; + drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ @@ -404,7 +404,7 @@ interface drsuapi GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark highwatermark; - drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; + drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ @@ -424,15 +424,15 @@ interface drsuapi GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ hyper highest_usn; /* updated after a full replication cycle */ NTTIME last_sync_success; - } drsuapi_DsReplicaCoursor2; + } drsuapi_DsReplicaCursor2; typedef struct { uint32 u1; uint32 u2; [range(0,0x100000)] uint32 count; uint32 u3; - [size_is(count)] drsuapi_DsReplicaCoursor2 coursors[]; - } drsuapi_DsReplicaCoursor2CtrEx; + [size_is(count)] drsuapi_DsReplicaCursor2 coursors[]; + } drsuapi_DsReplicaCursor2CtrEx; /* Generic DATA_BLOB values */ typedef struct { @@ -506,7 +506,7 @@ interface drsuapi drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; - drsuapi_DsReplicaCoursorCtrEx *uptodateness_vector; + drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; uint32 total_object_count; uint32 object_count; @@ -539,7 +539,7 @@ interface drsuapi drsuapi_DsReplicaObjectIdentifier *naming_context; drsuapi_DsReplicaHighWaterMark old_highwatermark; drsuapi_DsReplicaHighWaterMark new_highwatermark; - drsuapi_DsReplicaCoursor2CtrEx *uptodateness_vector; + drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; uint32 total_object_count; uint32 object_count; @@ -1112,7 +1112,7 @@ interface drsuapi DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 = 10, DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 = -2, DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 = -4, - DRSUAPI_DS_REPLICA_INFO_CURSURS05 = -5, + DRSUAPI_DS_REPLICA_INFO_CURSORS05 = -5, DRSUAPI_DS_REPLICA_INFO_06 = -6 } drsuapi_DsReplicaInfoType; @@ -1165,8 +1165,8 @@ interface drsuapi typedef struct { uint32 count; uint32 reserved; - [size_is(count)] drsuapi_DsReplicaCoursor array[]; - } drsuapi_DsReplicaCoursorCtr; + [size_is(count)] drsuapi_DsReplicaCursor array[]; + } drsuapi_DsReplicaCursorCtr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; @@ -1256,21 +1256,21 @@ interface drsuapi typedef struct { uint32 count; int32 enumeration_context; - [size_is(count)] drsuapi_DsReplicaCoursor2 array[]; - } drsuapi_DsReplicaCoursor2Ctr; + [size_is(count)] drsuapi_DsReplicaCursor2 array[]; + } drsuapi_DsReplicaCursor2Ctr; typedef struct { GUID source_dsa_invocation_id; hyper highest_usn; NTTIME last_sync_success; [charset(UTF16),string] uint16 *source_dsa_obj_dn; - } drsuapi_DsReplicaCoursor3; + } drsuapi_DsReplicaCursor3; typedef struct { uint32 count; int32 enumeration_context; - [size_is(count)] drsuapi_DsReplicaCoursor3 array[]; - } drsuapi_DsReplicaCoursor3Ctr; + [size_is(count)] drsuapi_DsReplicaCursor3 array[]; + } drsuapi_DsReplicaCursor3Ctr; typedef struct { [charset(UTF16),string] uint16 *attribute_name; @@ -1344,19 +1344,19 @@ interface drsuapi typedef [switch_type(drsuapi_DsReplicaInfoType)] union { [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; - [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCursorCtr *cursors; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] drsuapi_DsReplicaOpCtr *pendingops; [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; - [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCoursor2Ctr *coursors2; - [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCoursor3Ctr *coursors3; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCursor2Ctr *cursors2; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCursor3Ctr *cursors3; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02; [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04; - [case(DRSUAPI_DS_REPLICA_INFO_CURSURS05)] drsuapi_DsReplicaCoursorCtrEx *coursors05; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] drsuapi_DsReplicaCursorCtrEx *cursors05; [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06; } drsuapi_DsReplicaInfo; -- cgit From 8d139b0e93b871cfb26067ea4095b1d42a7382ea Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 3 Jan 2007 19:01:35 +0000 Subject: r20513: this values are the same as in drsuapi_DsReplicaObjectIdentifier3Binary the extra binary blob metze (This used to be commit 89f5389e8d9046a2bc96f76297cab5ffef847a25) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4ba2207f82..f4cef5affd 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1236,8 +1236,8 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; - uint32 value_length; - [size_is(value_length)] uint8 *value; + [value(ndr_size_DATA_BLOB(0,r->binary,0))] uint32 __ndr_size_binary; + DATA_BLOB *binary; NTTIME deleted; NTTIME created; uint32 version; @@ -1291,8 +1291,8 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; - uint32 value_length; - [size_is(value_length)] uint8 *value; + [value(ndr_size_DATA_BLOB(0,r->binary,0))] uint32 __ndr_size_binary; + DATA_BLOB *binary; NTTIME deleted; NTTIME created; uint32 version; -- cgit From 57f5bf78fa9fc9d190c3cb25251e686a1488f790 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 3 Jan 2007 19:09:34 +0000 Subject: r20514: implement idl for DsGetNT4ChangeLog() which transferres the meta data for NT4 DC's in mixed mode domains. This call is triggered by tranferring the PDC FSMO Role to another DC the real meta data is encoded in the user buffer which is just a DATA_BLOB in idl metze (This used to be commit d883815c8d64429e4dac26a93a15e67d31dc263e) --- source4/librpc/idl/drsuapi.idl | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f4cef5affd..e815de1cca 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -742,7 +742,41 @@ interface drsuapi /*****************/ /* Function 0x0b */ - WERROR DRSUAPI_GET_NT4_CHANGELOG(); + typedef struct { + uint32 unknown1; + uint32 unknown2; + [range(0,0x00A00000)] uint32 length; + [size_is(length)] uint8 *data; + } drsuapi_DsGetNT4ChangeLogRequest1; + + typedef [switch_type(uint32)] union { + [case(1)] drsuapi_DsGetNT4ChangeLogRequest1 req1; + } drsuapi_DsGetNT4ChangeLogRequest; + + typedef struct { + [range(0,0x00A00000)] uint32 length1; + [range(0,0x00A00000)] uint32 length2; + hyper unknown1; + NTTIME time2; + hyper unknown3; + NTTIME time4; + hyper unknown5; + NTTIME time6; + NTSTATUS status; + [size_is(length1)] uint8 *data1; + [size_is(length2)] uint8 *data2; + } drsuapi_DsGetNT4ChangeLogInfo1; + + typedef [switch_type(uint32)] union { + [case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1; + } drsuapi_DsGetNT4ChangeLogInfo; + + WERROR drsuapi_DsGetNT4ChangeLog( + [in] policy_handle *bind_handle, + [in,out] uint32 level, + [in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req, + [out] [switch_is(level)] drsuapi_DsGetNT4ChangeLogInfo info + ); /*****************/ /* Function 0x0c */ -- cgit From 38ba8bf8ba75c19ab8d34eb4862b05befc8e1497 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Jan 2007 20:51:19 +0000 Subject: r20566: Prepending with r-> is no longer necessary. (This used to be commit 1df96af3103795f609165e7a7344e1bf6046be79) --- source4/librpc/idl/drsuapi.idl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index e815de1cca..5974506e60 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -127,7 +127,7 @@ interface drsuapi /* Function 0x02 */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; - [value(ndr_size_dom_sid28(&r->sid, ndr->flags))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid28(&sid, ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; @@ -327,7 +327,7 @@ interface drsuapi * 2.5.5.17 => dom_sid */ typedef [nopush,nopull] struct { - [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(r->oid, 0))] uint32 __ndr_size; + [range(0,10000),value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size; [size_is(__ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */ } drsuapi_DsReplicaOID; @@ -436,7 +436,7 @@ interface drsuapi /* Generic DATA_BLOB values */ typedef struct { - [range(0,10485760),value(ndr_size_DATA_BLOB(0,r->blob,0))] uint32 __ndr_size; + [range(0,10485760),value(ndr_size_DATA_BLOB(0,blob,0))] uint32 __ndr_size; DATA_BLOB *blob; } drsuapi_DsAttributeValue; @@ -448,7 +448,7 @@ interface drsuapi /* DN String values */ typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; - [value(ndr_size_dom_sid28(&r->sid,ndr->flags))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; @@ -456,11 +456,11 @@ interface drsuapi typedef [public,gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r, ndr->flags))] uint32 __ndr_size; - [value(ndr_size_dom_sid28(&r->sid,ndr->flags))] uint32 __ndr_size_sid; + [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; [flag(STR_SIZE4|STR_CHARLEN)] string dn; - [value(r->binary.length + 4)] uint32 __ndr_size_binary; + [value(binary.length + 4)] uint32 __ndr_size_binary; [flag(NDR_REMAINING)] DATA_BLOB binary; } drsuapi_DsReplicaObjectIdentifier3Binary; @@ -557,7 +557,7 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length), + [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr1 *ctr1; } drsuapi_DsGetNCChangesMSZIPCtr1; @@ -565,7 +565,7 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length), + [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] drsuapi_DsGetNCChangesCtr6 *ctr6; } drsuapi_DsGetNCChangesMSZIPCtr6; @@ -573,7 +573,7 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length), + [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), flag(NDR_REMAINING)] DATA_BLOB *decompressed; } drsuapi_DsGetNCChangesXPRESSCtr1; @@ -581,7 +581,7 @@ interface drsuapi typedef struct { uint32 decompressed_length; uint32 compressed_length; - [subcontext(4),subcontext_size(r->compressed_length), + [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), flag(NDR_REMAINING)] DATA_BLOB *decompressed; } drsuapi_DsGetNCChangesXPRESSCtr6; @@ -1270,7 +1270,7 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; - [value(ndr_size_DATA_BLOB(0,r->binary,0))] uint32 __ndr_size_binary; + [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; DATA_BLOB *binary; NTTIME deleted; NTTIME created; @@ -1325,7 +1325,7 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; [charset(UTF16),string] uint16 *object_dn; - [value(ndr_size_DATA_BLOB(0,r->binary,0))] uint32 __ndr_size_binary; + [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; DATA_BLOB *binary; NTTIME deleted; NTTIME created; -- cgit From e8d2437cd570d8cbfaca7c07305831c29e260450 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 11 Jan 2007 04:12:35 +0000 Subject: r20676: Add ref pointer to fix warning. (This used to be commit 1afcf850679b6752935455a8f9198679649922b8) --- source4/librpc/idl/drsuapi.idl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 5974506e60..4ce2154edb 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -623,9 +623,9 @@ interface drsuapi WERROR drsuapi_DsGetNCChanges( [in] policy_handle *bind_handle, - [in,out] int32 level, - [in,switch_is(level)] drsuapi_DsGetNCChangesRequest req, - [out,switch_is(level)] drsuapi_DsGetNCChangesCtr ctr + [in,out,ref] int32 *level, + [in,switch_is(*level)] drsuapi_DsGetNCChangesRequest req, + [out,switch_is(*level)] drsuapi_DsGetNCChangesCtr ctr ); /*****************/ -- cgit From ed62bda65010d874969725c8ec7d11dd7994209d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 12 Jan 2007 12:55:30 +0000 Subject: r20702: fix spelling metze (This used to be commit dd2832b37a8cb82d62b4974b779a178bb2872839) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 4ce2154edb..e537b94d9c 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -431,7 +431,7 @@ interface drsuapi uint32 u2; [range(0,0x100000)] uint32 count; uint32 u3; - [size_is(count)] drsuapi_DsReplicaCursor2 coursors[]; + [size_is(count)] drsuapi_DsReplicaCursor2 cursors[]; } drsuapi_DsReplicaCursor2CtrEx; /* Generic DATA_BLOB values */ -- cgit From 04103008107442c6f561b35d7824f644470bb3e9 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sat, 13 Jan 2007 15:28:24 +0000 Subject: r20732: add idl for storing the prefixMap attribute as w2k3 doesn't return it when you ask for we don't know the exact format, but we assume that it starts with a uint32 version and as this attribute is not replicated we can chosse our own version... metze (This used to be commit cf546b7c182f6a9b636023377b5260d155bc15dd) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index e537b94d9c..a605271ad0 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -336,7 +336,7 @@ interface drsuapi drsuapi_DsReplicaOID oid; } drsuapi_DsReplicaOIDMapping; - typedef struct { + typedef [public] struct { [range(0,0x100000)] uint32 num_mappings; [size_is(num_mappings)] drsuapi_DsReplicaOIDMapping *mappings; } drsuapi_DsReplicaOIDMapping_Ctr; -- cgit From 34659685e1d4e8bae5eef7adf449e2cd5186f9ff Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 18 Feb 2007 00:41:42 +0000 Subject: r21415: Add tests for spoolss and drsuapi. Still need to add validators. (This used to be commit 61cb52b65b9be2fd09a5c5a02536600c0ac500f7) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a605271ad0..512b64c17a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -111,7 +111,7 @@ interface drsuapi const char *DRSUAPI_DS_BIND_GUID_W2K = "6abec3d1-3054-41c8-a362-5a0c5b7d5d71"; const char *DRSUAPI_DS_BIND_GUID_W2K3 = "6afab99c-6e26-464a-975f-f58f105218bc"; - WERROR drsuapi_DsBind( + [public] WERROR drsuapi_DsBind( [in,unique] GUID *bind_guid, [in,out,unique] drsuapi_DsBindInfoCtr *bind_info, [out] policy_handle *bind_handle @@ -1114,7 +1114,7 @@ interface drsuapi [case(3)] drsuapi_DsAddEntryCtr3 ctr3; } drsuapi_DsAddEntryCtr; - WERROR drsuapi_DsAddEntry( + [public] WERROR drsuapi_DsAddEntry( [in] policy_handle *bind_handle, [in,out] int32 level, [in,switch_is(level)] drsuapi_DsAddEntryRequest req, -- cgit From 9c9ec64518a4e8b0afc879c795f86d92c079f134 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 28 Feb 2007 17:27:35 +0000 Subject: r21595: add a constant and some comments metze (This used to be commit b8af925da9c515f3803aa813ef5e4cded892a525) --- source4/librpc/idl/drsuapi.idl | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 512b64c17a..a0cda12640 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1022,6 +1022,18 @@ interface drsuapi drsuapi_DsReplicaObject object; } drsuapi_DsReplicaObjectListItem; + /* + * The DsAddEntry() call which creates a nTDSDSA object, + * also adds a servicePrincipalName in the following form + * to the computer account of the new domain controller + * referenced by the "serverReferenece" attribute. + * + * E3514235-4B06-11D1-AB04-00C04FC2DCD2// + * + * also note that the "serverReference" isn't added to the new object! + */ + const char *DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID = "E3514235-4B06-11D1-AB04-00C04FC2DCD2"; + /* * please note the the current idl * for DsAddEntry does only parse -- cgit From 3e697d5110653d22bebade0da8f0c6c3749a2d09 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 9 Mar 2007 10:09:37 +0000 Subject: r21773: fix typo orginating -> originating and use the struct member names in all cases metze (This used to be commit c543ee57454d006c545e3e9e20c9ac0114081d3d) --- source4/librpc/idl/drsuapi.idl | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index a0cda12640..c1c9821d9b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -482,9 +482,9 @@ interface drsuapi typedef struct { uint32 version; - NTTIME_1sec orginating_time; - GUID orginating_invocation_id; - hyper orginating_usn; + NTTIME_1sec originating_change_time; + GUID originating_invocation_id; + hyper originating_usn; } drsuapi_DsReplicaMetaData; typedef [public] struct { @@ -529,7 +529,7 @@ interface drsuapi drsuapi_DsAttributeId attid; drsuapi_DsAttributeValue value; drsuapi_DsLinkedAttributeFlags flags; - NTTIME_1sec orginating_add_time; + NTTIME_1sec originating_add_time; drsuapi_DsReplicaMetaData meta_data; } drsuapi_DsReplicaLinkedAttribute; @@ -1217,8 +1217,8 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; uint32 version; - NTTIME originating_last_changed; - GUID originating_dsa_invocation_id; + NTTIME originating_change_time; + GUID originating_invocation_id; hyper originating_usn; hyper local_usn; } drsuapi_DsReplicaObjMetaData; @@ -1287,8 +1287,8 @@ interface drsuapi NTTIME deleted; NTTIME created; uint32 version; - NTTIME originating_last_changed; - GUID originating_dsa_invocation_id; + NTTIME originating_change_time; + GUID originating_invocation_id; hyper originating_usn; hyper local_usn; } drsuapi_DsReplicaAttrValMetaData; @@ -1321,11 +1321,11 @@ interface drsuapi typedef struct { [charset(UTF16),string] uint16 *attribute_name; uint32 version; - NTTIME originating_last_changed; - GUID originating_dsa_invocation_id; + NTTIME originating_change_time; + GUID originating_invocation_id; hyper originating_usn; hyper local_usn; - [charset(UTF16),string] uint16 *originating_dsa_obj_dn; + [charset(UTF16),string] uint16 *originating_dsa_dn; } drsuapi_DsReplicaObjMetaData2; typedef struct { @@ -1342,11 +1342,11 @@ interface drsuapi NTTIME deleted; NTTIME created; uint32 version; - NTTIME originating_last_changed; - GUID originating_dsa_invocation_id; + NTTIME originating_change_time; + GUID originating_invocation_id; hyper originating_usn; hyper local_usn; - [charset(UTF16),string] uint16 *originating_dsa_obj_dn; + [charset(UTF16),string] uint16 *originating_dsa_dn; } drsuapi_DsReplicaAttrValMetaData2; typedef struct { -- cgit From d0f989628a777943c7c0b1f306e967cc4ba7a63f Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 13 Mar 2007 11:10:48 +0000 Subject: r21817: give fields a meaning metze (This used to be commit 521355b57b74dbdccc6ae15738345e1d989ce262) --- source4/librpc/idl/drsuapi.idl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c1c9821d9b..f23914f8de 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -162,8 +162,8 @@ interface drsuapi typedef struct { drsuapi_DsReplicaObjectIdentifier *naming_context; - GUID guid1; - astring *string1; + GUID source_dsa_guid; + astring *other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name */ drsuapi_DsReplicaSyncOptions options; } drsuapi_DsReplicaSyncRequest1; -- cgit From 4d1a21f24d9d2f4326e380cadb24c842c2dfb688 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 30 May 2007 09:54:19 +0000 Subject: r23239: Fill in drsuapi_QuerySitesByCost. Guenther (This used to be commit cf953d04813d193da5e9714ceebb7826dc7e4d0b) --- source4/librpc/idl/drsuapi.idl | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f23914f8de..e8fbc85f29 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -1457,5 +1457,37 @@ interface drsuapi /*****************/ /* Function 0x18 */ - WERROR DRSUAPI_QUERY_SITES_BY_COST(); + typedef struct { + WERROR error_code; + uint32 site_cost; + } drsuapi_DsSiteCostInfo; + + typedef struct { + [range(0,10000)] uint32 num_info; + [size_is(num_info)] drsuapi_DsSiteCostInfo *info; + uint32 unknown; + } drsuapi_QuerySitesByCostCtr1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1; + } drsuapi_QuerySitesByCostCtr; + + typedef struct { + [charset(UTF16),string] uint16 *site_from; + [range(1,10000)] uint32 num_req; + [size_is(num_req)] [charset(UTF16),string] uint16 **site_to; + uint32 flags; + } drsuapi_QuerySitesByCostRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_QuerySitesByCostRequest1 req1; + } drsuapi_QuerySitesByCostRequest; + + WERROR drsuapi_QuerySitesByCost( + [in] policy_handle *bind_handle, + [in] int32 level, + [in] [switch_is(level)] drsuapi_QuerySitesByCostRequest req, + [out] int32 level_out, + [out] [switch_is(level_out)] drsuapi_QuerySitesByCostCtr ctr + ); } -- cgit From 236a780baa959236ff7879d109fa8ba5b067dc88 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 12 Jan 2008 01:18:53 +0100 Subject: idl: Use typedef rather than declare. (This used to be commit 3fd750bd54f150ff62fd8165406bd26d03d624cf) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index e8fbc85f29..f298b7e321 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -13,7 +13,7 @@ import "security.idl", "misc.idl", "samr.idl"; ] interface drsuapi { - declare bitmap samr_GroupAttrs; + typedef bitmap samr_GroupAttrs samr_GroupAttrs; /*****************/ /* Function 0x00 */ -- cgit From f9116ae6db3c10ede2ce55040bc79c7624064bc0 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 14 Feb 2008 15:02:11 +0100 Subject: drsuapi.idl: use charset() instead of the exotic flags() and string metze (This used to be commit 70c7faace76a84d2fe15accf4f8a1ca0ad905bd4) --- source4/librpc/idl/drsuapi.idl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f298b7e321..fb24122e26 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -130,7 +130,8 @@ interface drsuapi [value(ndr_size_dom_sid28(&sid, ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; - [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn; + [value(strlen_m(dn))] uint32 __ndr_size_dn; + [charset(UTF16),size_is(__ndr_size_dn+1)] uint16 dn[]; } drsuapi_DsReplicaObjectIdentifier; typedef [public] bitmap { @@ -451,7 +452,8 @@ interface drsuapi [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; - [flag(STR_SIZE4|STR_CHARLEN)] string dn; + [value(strlen_m(dn))] uint32 __ndr_size_dn; + [charset(UTF16)] uint16 dn[__ndr_size_dn+1]; } drsuapi_DsReplicaObjectIdentifier3; typedef [public,gensize] struct { @@ -459,7 +461,8 @@ interface drsuapi [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; GUID guid; dom_sid28 sid; - [flag(STR_SIZE4|STR_CHARLEN)] string dn; + [value(strlen_m(dn))] uint32 __ndr_size_dn; + [charset(UTF16)] uint16 dn[__ndr_size_dn+1]; [value(binary.length + 4)] uint32 __ndr_size_binary; [flag(NDR_REMAINING)] DATA_BLOB binary; } drsuapi_DsReplicaObjectIdentifier3Binary; -- cgit From 4fcd6cfb7520feabadd491c597ebfcb7b3267de1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 8 Apr 2008 03:15:55 +0200 Subject: Add [todo] for functions that are obviously incomplete. (This used to be commit b7b46ddd412bd106655c2a7b96a322d9f6ac3019) --- source4/librpc/idl/drsuapi.idl | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index fb24122e26..9652571668 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -666,7 +666,7 @@ interface drsuapi /* TODO ... */ } drsuapi_DsReplicaAddOptions; - WERROR DRSUAPI_REPLICA_ADD(); + [todo] WERROR DRSUAPI_REPLICA_ADD(); /*****************/ /* Function 0x06 */ @@ -676,7 +676,7 @@ interface drsuapi /* TODO ... */ } drsuapi_DsReplicaDeleteOptions; - WERROR DRSUAPI_REPLICA_DEL(); + [todo] WERROR DRSUAPI_REPLICA_DEL(); /*****************/ /* Function 0x07 */ @@ -685,11 +685,11 @@ interface drsuapi DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE = 0x00000002 } drsuapi_DsReplicaModifyOptions; - WERROR DRSUAPI_REPLICA_MODIFY(); + [todo] WERROR DRSUAPI_REPLICA_MODIFY(); /*****************/ /* Function 0x08 */ - WERROR DRSUAPI_VERIFY_NAMES(); + [todo] WERROR DRSUAPI_VERIFY_NAMES(); /*****************/ /* Function 0x09 */ @@ -732,7 +732,7 @@ interface drsuapi [case(1)] drsuapi_DsGetMembershipsRequest1 req1; } drsuapi_DsGetMembershipsRequest; - WERROR drsuapi_DsGetMemberships( + [todo] WERROR drsuapi_DsGetMemberships( [in] policy_handle *bind_handle, [in,out] int32 level, [in] [switch_is(level)] drsuapi_DsGetMembershipsRequest req, @@ -741,7 +741,7 @@ interface drsuapi /*****************/ /* Function 0x0a */ - WERROR DRSUAPI_INTER_DOMAIN_MOVE(); + [todo] WERROR DRSUAPI_INTER_DOMAIN_MOVE(); /*****************/ /* Function 0x0b */ @@ -774,7 +774,7 @@ interface drsuapi [case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1; } drsuapi_DsGetNT4ChangeLogInfo; - WERROR drsuapi_DsGetNT4ChangeLog( + [todo] WERROR drsuapi_DsGetNT4ChangeLog( [in] policy_handle *bind_handle, [in,out] uint32 level, [in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req, @@ -849,7 +849,7 @@ interface drsuapi [case(1)] drsuapi_DsNameCtr1 *ctr1; } drsuapi_DsNameCtr; - WERROR drsuapi_DsCrackNames( + [todo] WERROR drsuapi_DsCrackNames( [in] policy_handle *bind_handle, [in, out] int32 level, [in,switch_is(level)] drsuapi_DsNameRequest req, @@ -920,7 +920,7 @@ interface drsuapi /*****************/ /* Function 0x0f */ - WERROR DRSUAPI_REMOVE_DS_DOMAIN(); + [todo] WERROR DRSUAPI_REMOVE_DS_DOMAIN(); /*****************/ /* Function 0x10 */ @@ -1138,7 +1138,7 @@ interface drsuapi /*****************/ /* Function 0x12 */ - WERROR DRSUAPI_EXECUTE_KCC(); + [todo] WERROR DRSUAPI_EXECUTE_KCC(); /*****************/ /* Function 0x13 */ @@ -1419,7 +1419,7 @@ interface drsuapi /*****************/ /* Function 0x14 */ - WERROR DRSUAPI_ADD_SID_HISTORY(); + [todo] WERROR DRSUAPI_ADD_SID_HISTORY(); /*****************/ /* Function 0x15 */ @@ -1452,11 +1452,11 @@ interface drsuapi /*****************/ /* Function 0x16 */ - WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(); + [todo] WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(); /*****************/ /* Function 0x17 */ - WERROR DRSUAPI_GET_OBJECT_EXISTENCE(); + [todo] WERROR DRSUAPI_GET_OBJECT_EXISTENCE(); /*****************/ /* Function 0x18 */ -- cgit From c47286e57a80b731a4e7d938572f3b6f0a0a6c57 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 16 Apr 2008 18:11:37 +0200 Subject: Fix todo element on actually implemented function. (This used to be commit dedbeea4d28ae10a15766e38e59593a2799183f3) --- source4/librpc/idl/drsuapi.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 9652571668..2f48287233 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -849,7 +849,7 @@ interface drsuapi [case(1)] drsuapi_DsNameCtr1 *ctr1; } drsuapi_DsNameCtr; - [todo] WERROR drsuapi_DsCrackNames( + WERROR drsuapi_DsCrackNames( [in] policy_handle *bind_handle, [in, out] int32 level, [in,switch_is(level)] drsuapi_DsNameRequest req, -- cgit From 1eb5756ca58ddd01c1134cef2c3962053bcdaa82 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 30 Jun 2008 13:01:02 +0200 Subject: drsuapi.idl: remove some unknows from DsGetNCChanges() metze (This used to be commit 924ef407bd20331cc94f5aeb58f53a5838ae00a4) --- source4/librpc/idl/drsuapi.idl | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 2f48287233..6701d22a63 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -230,6 +230,17 @@ interface drsuapi DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000 } drsuapi_DsReplicaNeighbourFlags; + typedef [flag(NDR_PAHEX),v1_enum] enum { + DRSUAPI_EXOP_NONE = 0x00000000, + DRSUAPI_EXOP_FSMO_REQ_ROLE = 0x00000001, + DRSUAPI_EXOP_FSMO_RID_ALLOC = 0x00000002, + DRSUAPI_EXOP_FSMO_RID_REQ_ROLE = 0x00000003, + DRSUAPI_EXOP_FSMO_REQ_PDC = 0x00000004, + DRSUAPI_EXOP_FSMO_ABANDON_ROLE = 0x00000005, + DRSUAPI_EXOP_REPL_OBJ = 0x00000006, + DRSUAPI_EXOP_REPL_SECRET = 0x00000007 + } drsuapi_DsExtendedOperation; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -239,8 +250,8 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; } drsuapi_DsGetNCChangesRequest5; /* @@ -400,6 +411,13 @@ interface drsuapi DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c } drsuapi_DsAttributeId; + typedef struct { + [value(1)] uint32 version; + [value(0)] uint32 reserved1; + [range(1,0x100000)] uint32 num_attids; + [size_is(num_attids)] drsuapi_DsAttributeId attids[]; + } drsuapi_DsPartialAttributeSet; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -409,10 +427,10 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; - uint32 unique_ptr1; - uint32 unique_ptr2; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; + drsuapi_DsPartialAttributeSet *partial_attribute_set; + drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; } drsuapi_DsGetNCChangesRequest8; -- cgit From 80fe14a211e6b8f5439474cc40f9ff6e34bb8b9a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 11 Jul 2008 08:19:53 +0000 Subject: drsuapi.idl: correctly handle xpress compressed payload metze Signed-off-by: Stefan Metzmacher (This used to be commit d9d19eef4f67da89e7d818d23a2372bee6f86dba) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 6701d22a63..f61905b4b6 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -595,16 +595,16 @@ interface drsuapi uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), - compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), - flag(NDR_REMAINING)] DATA_BLOB *decompressed; + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr1 *ctr1; } drsuapi_DsGetNCChangesXPRESSCtr1; typedef struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), - compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), - flag(NDR_REMAINING)] DATA_BLOB *decompressed; + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr6 *ctr6; } drsuapi_DsGetNCChangesXPRESSCtr6; typedef [enum16bit] enum { -- cgit From 9827cf832f18d727e5343bf6748e3478b163cd54 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 Jul 2008 15:34:23 +0200 Subject: drsuapi.idl: fix unknowns in drsuapi_DsReplicaCursor[2] metze (This used to be commit a681e55067a83f06e465b81afb2b0b870b674dca) --- source4/librpc/idl/drsuapi.idl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index f61905b4b6..cba872fb3a 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -192,10 +192,10 @@ interface drsuapi } drsuapi_DsReplicaCursor; typedef struct { - uint32 u1; - uint32 u2; + [value(1)] uint32 version; + [value(0)] uint32 reserved1; [range(0,0x100000)] uint32 count; - uint32 u3; + [value(0)] uint32 reserved2; [size_is(count)] drsuapi_DsReplicaCursor cursors[]; } drsuapi_DsReplicaCursorCtrEx; @@ -446,10 +446,10 @@ interface drsuapi } drsuapi_DsReplicaCursor2; typedef struct { - uint32 u1; - uint32 u2; + [value(2)] uint32 version; + [value(0)] uint32 reserved1; [range(0,0x100000)] uint32 count; - uint32 u3; + [value(0)] uint32 reserved2; [size_is(count)] drsuapi_DsReplicaCursor2 cursors[]; } drsuapi_DsReplicaCursor2CtrEx; -- cgit From e81feb77a2c8f7e1af386d71a50e763f4232f73b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 Jul 2008 15:35:47 +0200 Subject: drsuapi.idl: fix unknowns in drsuapi_DsReplicaObject* metze (This used to be commit de2aed042d09ae7a31ddc4cd920c8fcf193ba06a) --- source4/librpc/idl/drsuapi.idl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index cba872fb3a..31c16f12ea 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -495,9 +495,15 @@ interface drsuapi [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes; } drsuapi_DsReplicaAttributeCtr; + typedef [public] bitmap { + DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER = 0x00000001, + DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC = 0x00000002, + DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY = 0x00010000 + } drsuapi_DsReplicaObjectFlags; + typedef [public] struct { drsuapi_DsReplicaObjectIdentifier *identifier; - uint32 unknown1; + drsuapi_DsReplicaObjectFlags flags; drsuapi_DsReplicaAttributeCtr attribute_ctr; } drsuapi_DsReplicaObject; @@ -516,7 +522,7 @@ interface drsuapi typedef [public,noprint] struct { drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; - uint32 unknown1; + boolean32 is_nc_prefix; GUID *parent_object_guid; drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; } drsuapi_DsReplicaObjectListItemEx; -- cgit From 033683b00ed99e891bb6bc5852dc2d6f146b1874 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 15 Jul 2008 15:36:54 +0200 Subject: drsuapi.idl: fix unknowns in drsuapi_DsGetNCChangesCtr* metze (This used to be commit 9e99e59ca7e56bf74417ec85339e09e86f50d17e) --- source4/librpc/idl/drsuapi.idl | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 31c16f12ea..b9cff5d11d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -241,6 +241,26 @@ interface drsuapi DRSUAPI_EXOP_REPL_SECRET = 0x00000007 } drsuapi_DsExtendedOperation; + typedef [flag(NDR_PAHEX),v1_enum] enum { + DRSUAPI_EXOP_ERR_NONE = 0x00000000, + DRSUAPI_EXOP_ERR_SUCCESS = 0x00000001, + DRSUAPI_EXOP_ERR_UNKNOWN_OP = 0x00000002, + DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER = 0x00000003, + DRSUAPI_EXOP_ERR_UPDATE_ERR = 0x00000004, + DRSUAPI_EXOP_ERR_EXCEPTION = 0x00000005, + DRSUAPI_EXOP_ERR_UNKNOWN_CALLER = 0x00000006, + DRSUAPI_EXOP_ERR_RID_ALLOC = 0x00000007, + DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED = 0x00000008, + DRSUAPI_EXOP_ERR_FMSO_PENDING_OP = 0x00000009, + DRSUAPI_EXOP_ERR_MISMATCH = 0x0000000A, + DRSUAPI_EXOP_ERR_COULDNT_CONTACT = 0x0000000B, + DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES = 0x0000000C, + DRSUAPI_EXOP_ERR_DIR_ERROR = 0x0000000D, + DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS = 0x0000000E, + DRSUAPI_EXOP_ERR_ACCESS_DENIED = 0x0000000F, + DRSUAPI_EXOP_ERR_PARAM_ERROR = 0x00000010 + } drsuapi_DsExtendedError; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -535,12 +555,12 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; - uint32 total_object_count; + drsuapi_DsExtendedError extended_ret; /* w2k sends the nc_object_count value here */ uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; - uint32 unknown4; + boolean32 more_data; } drsuapi_DsGetNCChangesCtr1; /* @@ -568,17 +588,17 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; - uint32 total_object_count; + drsuapi_DsExtendedError extended_ret; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; - uint32 unknown4; - uint32 unknown5; - uint32 unknown6; + boolean32 more_data; + uint32 nc_object_count; /* estimated amount of objects in the whole NC */ + uint32 nc_linked_attributes_count; /* estimated amount of linked values in the whole NC */ [range(0,1048576)] uint32 linked_attributes_count; [size_is(linked_attributes_count)] drsuapi_DsReplicaLinkedAttribute *linked_attributes; - uint32 unknown7; + WERROR drs_error; } drsuapi_DsGetNCChangesCtr6; typedef struct { -- cgit From 2abe5e9240af3970f0f06a492bb520a569cd77b0 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 22 Jul 2008 11:37:32 +0200 Subject: drsuapi.idl: add drsuapi_DsBindInfo48. This is necessary to make DsGetNcChanges work with win2008. Michael (This used to be commit dd278b069b8683a0e3721ebb7d0de06d2bc1c86f) --- source4/librpc/idl/drsuapi.idl | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b9cff5d11d..c0d82babc4 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -73,6 +73,15 @@ interface drsuapi uint32 repl_epoch; } drsuapi_DsBindInfo28; + /* this is used by w2k8 */ + typedef struct { + drsuapi_SupportedExtensions supported_extensions; + GUID site_guid; + uint32 u1; + uint32 repl_epoch; + uint32 unknown[5]; + } drsuapi_DsBindInfo48; + typedef struct { [flag(NDR_REMAINING)] DATA_BLOB info; } drsuapi_DsBindInfoFallBack; @@ -80,6 +89,7 @@ interface drsuapi typedef [nodiscriminant] union { [case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24; [case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28; + [case(48)][subcontext(4)] drsuapi_DsBindInfo48 info48; [default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack; } drsuapi_DsBindInfo; -- cgit From e7785a371a1881eb1ad5ee6cf8d2de2b4537fa39 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 22 Jul 2008 12:46:04 +0200 Subject: drsuapi.idl: the last 16 bytes in DsBindInfo48 ar the GUID of the config dn. This bit seems not to be documented in the WSPP docs. Michael (This used to be commit 705f79bd0a5e93daa0cb11b5dcca36e75c75df93) --- source4/librpc/idl/drsuapi.idl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c0d82babc4..96cb56ba3d 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -79,7 +79,8 @@ interface drsuapi GUID site_guid; uint32 u1; uint32 repl_epoch; - uint32 unknown[5]; + uint32 unknown; + GUID config_dn_guid; } drsuapi_DsBindInfo48; typedef struct { -- cgit From 901e764fa75030c22e4bda37e384dc074bcceb08 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 22 Jul 2008 13:07:55 +0200 Subject: drsuapi.idl: add drsuapi_SupportedExtensionsExt bitfield. This knowledge is obtained from the wspp-docs (section 5.35). Michael (This used to be commit f5afb695045b1a2f3b8c00a4d82d40e8e50726c9) --- source4/librpc/idl/drsuapi.idl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 96cb56ba3d..ee1f5c8139 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -58,6 +58,11 @@ interface drsuapi DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000 } drsuapi_SupportedExtensions; + typedef [bitmap32bit] bitmap { + DRSUAPI_SUPPORTED_EXTENSION_ADAM = 0x00000001, + DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = 0x00000002 + } drsuapi_SupportedExtensionsExt; + /* this is used by w2k */ typedef struct { drsuapi_SupportedExtensions supported_extensions; @@ -79,7 +84,7 @@ interface drsuapi GUID site_guid; uint32 u1; uint32 repl_epoch; - uint32 unknown; + drsuapi_SupportedExtensionsExt supported_extensions_ext; GUID config_dn_guid; } drsuapi_DsBindInfo48; -- cgit From e184b70768881ed9a4e957de630047ca292bc96e Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Tue, 22 Jul 2008 15:33:26 +0200 Subject: drsuapi.idl: change the u1 field in DsBindInfo* to "pid". According to the WSPP docs, section 5.35, this is the "process identifyer" of the client. It is meant for informational and debugging purposes only and its assignment is implementation specific. Michael (This used to be commit 579306eb5b58b6c1142b3c489e4bcf6da50810d6) --- source4/librpc/idl/drsuapi.idl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index ee1f5c8139..c19da4fa19 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -67,14 +67,14 @@ interface drsuapi typedef struct { drsuapi_SupportedExtensions supported_extensions; GUID site_guid; - uint32 u1; + uint32 pid; } drsuapi_DsBindInfo24; /* this is used by w2k3 */ typedef struct { drsuapi_SupportedExtensions supported_extensions; GUID site_guid; - uint32 u1; + uint32 pid; uint32 repl_epoch; } drsuapi_DsBindInfo28; @@ -82,7 +82,7 @@ interface drsuapi typedef struct { drsuapi_SupportedExtensions supported_extensions; GUID site_guid; - uint32 u1; + uint32 pid; uint32 repl_epoch; drsuapi_SupportedExtensionsExt supported_extensions_ext; GUID config_dn_guid; @@ -1425,7 +1425,7 @@ interface drsuapi GUID bind_guid; NTTIME_1sec bind_time; [flag(NDR_BIG_ENDIAN)] ipv4address client_ip_address; - uint32 u5; /* this is the same value the client used as u1 in the DsBindInfoX struct */ + uint32 u5; /* this is the same value the client used as pid in the DsBindInfoX struct */ } drsuapi_DsReplicaConnection04; typedef struct { -- cgit From 8a01bdc99a3d26cb5d26ccfdb60e0224f295472d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 7 Aug 2008 16:15:26 +0000 Subject: drsuapi.idl: directly use mszip in level 2 This fixes the push because the switch_level doesn't work otherwise because the pointer is the same as for the outer switch_level. metze (This used to be commit a4c81ee68c91b2d7a9abe668e8b23246c5c9b00d) --- source4/librpc/idl/drsuapi.idl | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index c19da4fa19..88d2126d0b 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -662,13 +662,7 @@ interface drsuapi } drsuapi_DsGetNCChangesCompressedCtr; typedef struct { - /* - * this is a bit ugly, as the compression depends on the flags - * in the DsBind(), but only w2k uses DsGetNCChangesReq5 - * and will get DsGetNCChangesCtr2 replies, and w2k only knowns - * about MSZIP and level 1 replies - */ - [switch_is(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; + drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; } drsuapi_DsGetNCChangesCtr2; typedef struct { -- cgit From 9d0db64d247aa641a8debc81ba528b493daa1aac Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 19 Aug 2008 10:35:15 +0200 Subject: drsuapi.idl: readd type serialization headers to compressed DsGetNCChangesCtr* metze (This used to be commit 4e6937816f1563686d04da4ab00a46d4461401b9) --- source4/librpc/idl/drsuapi.idl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 88d2126d0b..b929bb0d58 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -617,12 +617,20 @@ interface drsuapi WERROR drs_error; } drsuapi_DsGetNCChangesCtr6; + typedef struct { + [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr1 ctr1; + } drsuapi_DsGetNCChangesCtr1TS; + + typedef struct { + [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr6 ctr6; + } drsuapi_DsGetNCChangesCtr6TS; + typedef struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] - drsuapi_DsGetNCChangesCtr1 *ctr1; + drsuapi_DsGetNCChangesCtr1TS *ts; } drsuapi_DsGetNCChangesMSZIPCtr1; typedef struct { @@ -630,7 +638,7 @@ interface drsuapi uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] - drsuapi_DsGetNCChangesCtr6 *ctr6; + drsuapi_DsGetNCChangesCtr6TS *ts; } drsuapi_DsGetNCChangesMSZIPCtr6; typedef struct { @@ -638,7 +646,7 @@ interface drsuapi uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] - drsuapi_DsGetNCChangesCtr1 *ctr1; + drsuapi_DsGetNCChangesCtr1TS *ts; } drsuapi_DsGetNCChangesXPRESSCtr1; typedef struct { @@ -646,7 +654,7 @@ interface drsuapi uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] - drsuapi_DsGetNCChangesCtr6 *ctr6; + drsuapi_DsGetNCChangesCtr6TS *ts; } drsuapi_DsGetNCChangesXPRESSCtr6; typedef [enum16bit] enum { -- cgit From e3319bf849a2e25a3370137b2552711385c69770 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 20 Aug 2008 21:53:21 +0200 Subject: drsuapi.idl: use hand written push functions for the compressed blobs This isn't really the final solution, as we compress the data twice, but it works. metze (This used to be commit 6da1d41173a7b82412fcebdd751eade51cf82b2a) --- source4/librpc/idl/drsuapi.idl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source4/librpc/idl/drsuapi.idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index b929bb0d58..cc76599be6 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -617,15 +617,15 @@ interface drsuapi WERROR drs_error; } drsuapi_DsGetNCChangesCtr6; - typedef struct { + typedef [public] struct { [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr1 ctr1; } drsuapi_DsGetNCChangesCtr1TS; - typedef struct { + typedef [public] struct { [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr6 ctr6; } drsuapi_DsGetNCChangesCtr6TS; - typedef struct { + typedef [nopush] struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), @@ -633,7 +633,7 @@ interface drsuapi drsuapi_DsGetNCChangesCtr1TS *ts; } drsuapi_DsGetNCChangesMSZIPCtr1; - typedef struct { + typedef [nopush] struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), @@ -641,7 +641,7 @@ interface drsuapi drsuapi_DsGetNCChangesCtr6TS *ts; } drsuapi_DsGetNCChangesMSZIPCtr6; - typedef struct { + typedef [nopush] struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), @@ -649,7 +649,7 @@ interface drsuapi drsuapi_DsGetNCChangesCtr1TS *ts; } drsuapi_DsGetNCChangesXPRESSCtr1; - typedef struct { + typedef [nopush] struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), -- cgit