[SCM] Samba Shared Repository - branch master updated

Anatoliy Atanasov anatoliy at samba.org
Wed Feb 24 06:06:21 MST 2010


The branch, master has been updated
       via  8416570... s4/drs_util: 'net drs showrepl' command implementation
       via  2f20a4b... s4/idl: Regenerate IDL for DRSUAPI interface
       via  83007e0... s4/drs: Propagate drsuapi_DsReplicaGetInfoRequest2 changes in source code
       via  0f6a453... s4/idl: drsuapi_DsReplicaGetInfoRequest2 - 'string2' to 'value_dn_str'
       via  10fce68... s4/idl: drsuapi_DsReplicaGetInfoRequest2 - 'string1' to 'attribute_name'
       via  30ac3ca... s4/drs: Propagate drsuapi_DsReplicaGetInfoRequest... changes into source code
       via  fb9880d... s4/idl: rename 'guid1' to 'source_dsa_guid' in drsuapi_DsReplicaGetInfoRequest description
       via  3f5e9e9... s4/drs_util: 'net drs replicate' command implementation
       via  ff94094... s4/drs_util: Add public function for binding to a DC
       via  3947462... s4/drs_util: Refactor code to use net_drs_connection object for DRSUAPI connecitons
       via  9ddb108... s4/drs_util: Move DRSUAPI connection data into separate object
       via  e5aae24... s4/net_drs: Utility macros for conditions checking
       via  99db858... s4/drs: Propagate drsuapi_DsReplicaSync changes in source base
       via  8747e69... s4/drs: Propagate drsuapi_DsReplicaSyncRequest1 changes in source base
       via  5831896... s4/idl: Regenerate IDL for DRSUAPI interface
       via  e9438b4... s4/idl: drsuapi.idl fix drsuapi_DsReplicaSync definition
       via  f1a33a6... s4/idl: drsuapi.idl fix drsuapi_DsReplicaSyncRequest1 description
      from  6346ec0... s3:selftest: handle spaces in test names

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8416570ea31a3370774fe6884f443876ea2cba3c
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Wed Feb 17 21:32:50 2010 +0200

    s4/drs_util: 'net drs showrepl' command implementation

commit 2f20a4b23ef5df9fe7a9f9cb43f75180e0676673
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:50:13 2010 +0200

    s4/idl: Regenerate IDL for DRSUAPI interface

commit 83007e06c177b13fe56ae0247e8c2086bb59d563
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:49:40 2010 +0200

    s4/drs: Propagate drsuapi_DsReplicaGetInfoRequest2 changes in source code

commit 0f6a453f9f802d5d69c0698672a6f3ef04ad6a27
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:49:02 2010 +0200

    s4/idl: drsuapi_DsReplicaGetInfoRequest2 - 'string2' to 'value_dn_str'

commit 10fce687fe5f21ab3ba2591bebc04c2f46d1d5f3
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:47:57 2010 +0200

    s4/idl: drsuapi_DsReplicaGetInfoRequest2 - 'string1' to 'attribute_name'

commit 30ac3caade8d204b859d9b3ed4c51bdbeaaa3cbf
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:40:07 2010 +0200

    s4/drs: Propagate drsuapi_DsReplicaGetInfoRequest... changes into source code

commit fb9880d6e89a48d2588edbe753bbb4c90fb01173
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sun Feb 14 02:38:11 2010 +0200

    s4/idl: rename 'guid1' to 'source_dsa_guid' in drsuapi_DsReplicaGetInfoRequest description

commit 3f5e9e9974ef66b827f4c9094146d642690b5b80
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sat Feb 13 03:27:27 2010 +0200

    s4/drs_util: 'net drs replicate' command implementation

commit ff94094dfa7dd8a07d4e200bc887cd1d58569f12
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 06:13:22 2010 +0200

    s4/drs_util: Add public function for binding to a DC

commit 394746285e42111c221e4926afa0376d21544618
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 06:02:05 2010 +0200

    s4/drs_util: Refactor code to use net_drs_connection object for DRSUAPI connecitons

commit 9ddb10869c19ac303e85e9e51872bb322834ac0f
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 06:01:06 2010 +0200

    s4/drs_util: Move DRSUAPI connection data into separate object
    
    We need this so we can create independent DRS connections to
    different DCs.

commit e5aae24b3fef0048a33a682989935776f3415dc6
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 01:47:55 2010 +0200

    s4/net_drs: Utility macros for conditions checking

commit 99db858b155a9a12bcbaae631d34d12062206e12
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sat Feb 13 04:57:28 2010 +0200

    s4/drs: Propagate drsuapi_DsReplicaSync changes in source base

commit 8747e695fe4ff732537f6fc822f4c24f3cfd9d39
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 00:20:52 2010 +0200

    s4/drs: Propagate drsuapi_DsReplicaSyncRequest1 changes in source base

commit 58318960b78f4d65cd7a2930703296520115ea3e
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 00:17:52 2010 +0200

    s4/idl: Regenerate IDL for DRSUAPI interface

commit e9438b4c12f135ca01d6e0c65e88176459570907
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Sat Feb 13 04:53:20 2010 +0200

    s4/idl: drsuapi.idl fix drsuapi_DsReplicaSync definition
    
    - Function should accept pointer to drsuapi_DsReplicaSyncRequest.
      While this doesn't generate essentially different code for
      NDR parser, using pointer will make drsuapi_DsReplicaSync
      descritpin with the rest of the functions in DRSUAPI interface.
      Another benefit is that this way we could create Wireshark
      dissector directly from Samba's verions for drsuapi.idl
    
    - 'level' and thus the switch_type() should be uint32

commit f1a33a6cfeafe5dd34ab1e9176bc2ffbf136a117
Author: Kamen Mazdrashki <kamen.mazdrashki at postpath.com>
Date:   Fri Feb 12 00:15:10 2010 +0200

    s4/idl: drsuapi.idl fix drsuapi_DsReplicaSyncRequest1 description
    
    - pointer to naming_context should be [ref] pointer
      (i.e. not NULL pointer)
    - other_info is actually the DNS name for Source DSA and is used
      if DRSUAPI_DRS_SYNC_BYNAME is passed
      ref: [MS-DRSR] 5.39

-----------------------------------------------------------------------

Summary of changes:
 librpc/gen_ndr/cli_drsuapi.c              |    8 +-
 librpc/gen_ndr/cli_drsuapi.h              |    8 +-
 librpc/gen_ndr/drsuapi.h                  |   18 +-
 librpc/gen_ndr/ndr_drsuapi.c              |  204 +++++-----
 librpc/idl/drsuapi.idl                    |   18 +-
 source4/dsdb/kcc/kcc_drs_replica_info.c   |    4 +-
 source4/dsdb/repl/drepl_notify.c          |   12 +-
 source4/dsdb/repl/drepl_service.c         |    2 +-
 source4/torture/rpc/drsuapi.c             |   21 +-
 source4/torture/rpc/dsgetinfo.c           |   10 +-
 source4/utils/net/config.mk               |    4 +-
 source4/utils/net/drs/net_drs.c           |  122 +++++--
 source4/utils/net/drs/net_drs.h           |   42 ++-
 source4/utils/net/drs/net_drs_bind.c      |    4 +-
 source4/utils/net/drs/net_drs_kcc.c       |   10 +-
 source4/utils/net/drs/net_drs_replicate.c |  246 ++++++++++++
 source4/utils/net/drs/net_drs_showrepl.c  |  608 +++++++++++++++++++++++++++++
 17 files changed, 1154 insertions(+), 187 deletions(-)
 create mode 100644 source4/utils/net/drs/net_drs_replicate.c
 create mode 100644 source4/utils/net/drs/net_drs_showrepl.c


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/cli_drsuapi.c b/librpc/gen_ndr/cli_drsuapi.c
index c261a79..352442f 100644
--- a/librpc/gen_ndr/cli_drsuapi.c
+++ b/librpc/gen_ndr/cli_drsuapi.c
@@ -328,8 +328,8 @@ struct tevent_req *rpccli_drsuapi_DsReplicaSync_send(TALLOC_CTX *mem_ctx,
 						     struct tevent_context *ev,
 						     struct rpc_pipe_client *cli,
 						     struct policy_handle *_bind_handle /* [in] [ref] */,
-						     int32_t _level /* [in]  */,
-						     union drsuapi_DsReplicaSyncRequest _req /* [in] [switch_is(level)] */)
+						     uint32_t _level /* [in]  */,
+						     union drsuapi_DsReplicaSyncRequest *_req /* [in] [ref,switch_is(level)] */)
 {
 	struct tevent_req *req;
 	struct rpccli_drsuapi_DsReplicaSync_state *state;
@@ -426,8 +426,8 @@ NTSTATUS rpccli_drsuapi_DsReplicaSync_recv(struct tevent_req *req,
 NTSTATUS rpccli_drsuapi_DsReplicaSync(struct rpc_pipe_client *cli,
 				      TALLOC_CTX *mem_ctx,
 				      struct policy_handle *bind_handle /* [in] [ref] */,
-				      int32_t level /* [in]  */,
-				      union drsuapi_DsReplicaSyncRequest req /* [in] [switch_is(level)] */,
+				      uint32_t level /* [in]  */,
+				      union drsuapi_DsReplicaSyncRequest *req /* [in] [ref,switch_is(level)] */,
 				      WERROR *werror)
 {
 	struct drsuapi_DsReplicaSync r;
diff --git a/librpc/gen_ndr/cli_drsuapi.h b/librpc/gen_ndr/cli_drsuapi.h
index 970e65e..c2ab1be 100644
--- a/librpc/gen_ndr/cli_drsuapi.h
+++ b/librpc/gen_ndr/cli_drsuapi.h
@@ -31,16 +31,16 @@ struct tevent_req *rpccli_drsuapi_DsReplicaSync_send(TALLOC_CTX *mem_ctx,
 						     struct tevent_context *ev,
 						     struct rpc_pipe_client *cli,
 						     struct policy_handle *_bind_handle /* [in] [ref] */,
-						     int32_t _level /* [in]  */,
-						     union drsuapi_DsReplicaSyncRequest _req /* [in] [switch_is(level)] */);
+						     uint32_t _level /* [in]  */,
+						     union drsuapi_DsReplicaSyncRequest *_req /* [in] [ref,switch_is(level)] */);
 NTSTATUS rpccli_drsuapi_DsReplicaSync_recv(struct tevent_req *req,
 					   TALLOC_CTX *mem_ctx,
 					   WERROR *result);
 NTSTATUS rpccli_drsuapi_DsReplicaSync(struct rpc_pipe_client *cli,
 				      TALLOC_CTX *mem_ctx,
 				      struct policy_handle *bind_handle /* [in] [ref] */,
-				      int32_t level /* [in]  */,
-				      union drsuapi_DsReplicaSyncRequest req /* [in] [switch_is(level)] */,
+				      uint32_t level /* [in]  */,
+				      union drsuapi_DsReplicaSyncRequest *req /* [in] [ref,switch_is(level)] */,
 				      WERROR *werror);
 struct tevent_req *rpccli_drsuapi_DsGetNCChanges_send(TALLOC_CTX *mem_ctx,
 						      struct tevent_context *ev,
diff --git a/librpc/gen_ndr/drsuapi.h b/librpc/gen_ndr/drsuapi.h
index 41f541a..5cce4ef 100644
--- a/librpc/gen_ndr/drsuapi.h
+++ b/librpc/gen_ndr/drsuapi.h
@@ -171,15 +171,15 @@ struct drsuapi_DsReplicaObjectIdentifier {
 #define DRSUAPI_DS_REPLICA_SYNC_PREEMPTED ( 0x00800000 )
 
 struct drsuapi_DsReplicaSyncRequest1 {
-	struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [unique] */
+	struct drsuapi_DsReplicaObjectIdentifier *naming_context;/* [ref] */
 	struct GUID source_dsa_guid;
-	const char * other_info;/* [unique,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
+	const char * source_dsa_dns;/* [unique,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
 	uint32_t options;
 };
 
 union drsuapi_DsReplicaSyncRequest {
 	struct drsuapi_DsReplicaSyncRequest1 req1;/* [case] */
-}/* [switch_type(int32)] */;
+}/* [switch_type(uint32)] */;
 
 struct drsuapi_DsReplicaHighWaterMark {
 	uint64_t tmp_highest_usn;
@@ -1271,16 +1271,16 @@ enum drsuapi_DsReplicaInfoType
 struct drsuapi_DsReplicaGetInfoRequest1 {
 	enum drsuapi_DsReplicaInfoType info_type;
 	const char *object_dn;/* [unique,charset(UTF16)] */
-	struct GUID guid1;
+	struct GUID source_dsa_guid;
 };
 
 struct drsuapi_DsReplicaGetInfoRequest2 {
 	enum drsuapi_DsReplicaInfoType info_type;
 	const char *object_dn;/* [unique,charset(UTF16)] */
-	struct GUID guid1;
+	struct GUID source_dsa_guid;
 	uint32_t flags;
-	const char *string1;/* [unique,charset(UTF16)] */
-	const char *string2;/* [unique,charset(UTF16)] */
+	const char *attribute_name;/* [unique,charset(UTF16)] */
+	const char *value_dn_str;/* [unique,charset(UTF16)] */
 	uint32_t enumeration_context;
 };
 
@@ -1590,8 +1590,8 @@ struct drsuapi_DsUnbind {
 struct drsuapi_DsReplicaSync {
 	struct {
 		struct policy_handle *bind_handle;/* [ref] */
-		int32_t level;
-		union drsuapi_DsReplicaSyncRequest req;/* [switch_is(level)] */
+		uint32_t level;
+		union drsuapi_DsReplicaSyncRequest *req;/* [ref,switch_is(level)] */
 	} in;
 
 	struct {
diff --git a/librpc/gen_ndr/ndr_drsuapi.c b/librpc/gen_ndr/ndr_drsuapi.c
index 681af12..6d45e2d 100644
--- a/librpc/gen_ndr/ndr_drsuapi.c
+++ b/librpc/gen_ndr/ndr_drsuapi.c
@@ -616,26 +616,27 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push
 {
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_push_align(ndr, 5));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
+		if (r->naming_context == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_ref_ptr(ndr));
 		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
 		{
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-			NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
+			NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dns));
 			ndr->flags = _flags_save_string;
 		}
 		NDR_CHECK(ndr_push_drsuapi_DrsOptions(ndr, NDR_SCALARS, r->options));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->naming_context) {
-			NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
-		}
+		NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
 		{
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-			if (r->other_info) {
-				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->other_info));
+			if (r->source_dsa_dns) {
+				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->source_dsa_dns));
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -647,11 +648,11 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
 {
 	uint32_t _ptr_naming_context;
 	TALLOC_CTX *_mem_save_naming_context_0;
-	uint32_t _ptr_other_info;
-	TALLOC_CTX *_mem_save_other_info_0;
+	uint32_t _ptr_source_dsa_dns;
+	TALLOC_CTX *_mem_save_source_dsa_dns_0;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 5));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
+		NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
 		if (_ptr_naming_context) {
 			NDR_PULL_ALLOC(ndr, r->naming_context);
 		} else {
@@ -661,11 +662,11 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
 		{
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_info));
-			if (_ptr_other_info) {
-				NDR_PULL_ALLOC(ndr, r->other_info);
+			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dns));
+			if (_ptr_source_dsa_dns) {
+				NDR_PULL_ALLOC(ndr, r->source_dsa_dns);
 			} else {
-				r->other_info = NULL;
+				r->source_dsa_dns = NULL;
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -673,20 +674,18 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
-		if (r->naming_context) {
-			_mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
-			NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
-		}
+		_mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
+		NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
 		{
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
-			if (r->other_info) {
-				_mem_save_other_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
-				NDR_PULL_SET_MEM_CTX(ndr, r->other_info, 0);
-				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->other_info));
-				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_info_0, 0);
+			if (r->source_dsa_dns) {
+				_mem_save_source_dsa_dns_0 = NDR_PULL_GET_MEM_CTX(ndr);
+				NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dns, 0);
+				NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->source_dsa_dns));
+				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dns_0, 0);
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -700,15 +699,13 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, con
 	ndr->depth++;
 	ndr_print_ptr(ndr, "naming_context", r->naming_context);
 	ndr->depth++;
-	if (r->naming_context) {
-		ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
-	}
+	ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
 	ndr->depth--;
 	ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
-	ndr_print_ptr(ndr, "other_info", r->other_info);
+	ndr_print_ptr(ndr, "source_dsa_dns", r->source_dsa_dns);
 	ndr->depth++;
-	if (r->other_info) {
-		ndr_print_string(ndr, "other_info", r->other_info);
+	if (r->source_dsa_dns) {
+		ndr_print_string(ndr, "source_dsa_dns", r->source_dsa_dns);
 	}
 	ndr->depth--;
 	ndr_print_drsuapi_DrsOptions(ndr, "options", r->options);
@@ -719,7 +716,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *
 {
 	if (ndr_flags & NDR_SCALARS) {
 		int level = ndr_push_get_switch_value(ndr, r);
-		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 		NDR_CHECK(ndr_push_union_align(ndr, 5));
 		switch (level) {
 			case 1: {
@@ -747,10 +744,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
 {
 	int level;
-	int32_t _level;
+	uint32_t _level;
 	level = ndr_pull_get_switch_value(ndr, r);
 	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 		if (_level != level) {
 			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 		}
@@ -9602,7 +9599,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pu
 		NDR_CHECK(ndr_push_align(ndr, 5));
 		NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
-		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
+		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
@@ -9629,7 +9626,7 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pu
 		} else {
 			r->object_dn = NULL;
 		}
-		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
+		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 	}
 	if (ndr_flags & NDR_BUFFERS) {
@@ -9660,7 +9657,7 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr,
 		ndr_print_string(ndr, "object_dn", r->object_dn);
 	}
 	ndr->depth--;
-	ndr_print_GUID(ndr, "guid1", &r->guid1);
+	ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
 	ndr->depth--;
 }
 
@@ -9670,10 +9667,10 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 		NDR_CHECK(ndr_push_align(ndr, 5));
 		NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
 		NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
-		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
+		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->string1));
-		NDR_CHECK(ndr_push_unique_ptr(ndr, r->string2));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, r->value_dn_str));
 		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumeration_context));
 		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 	}
@@ -9684,17 +9681,17 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
 			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 		}
-		if (r->string1) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
+		if (r->attribute_name) {
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
 			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string1, ndr_charset_length(r->string1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
+			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 		}
-		if (r->string2) {
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
+		if (r->value_dn_str) {
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
 			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
-			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
-			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string2, ndr_charset_length(r->string2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->value_dn_str, CH_UTF16)));
+			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->value_dn_str, ndr_charset_length(r->value_dn_str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -9704,10 +9701,10 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 {
 	uint32_t _ptr_object_dn;
 	TALLOC_CTX *_mem_save_object_dn_0;
-	uint32_t _ptr_string1;
-	TALLOC_CTX *_mem_save_string1_0;
-	uint32_t _ptr_string2;
-	TALLOC_CTX *_mem_save_string2_0;
+	uint32_t _ptr_attribute_name;
+	TALLOC_CTX *_mem_save_attribute_name_0;
+	uint32_t _ptr_value_dn_str;
+	TALLOC_CTX *_mem_save_value_dn_str_0;
 	if (ndr_flags & NDR_SCALARS) {
 		NDR_CHECK(ndr_pull_align(ndr, 5));
 		NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
@@ -9717,19 +9714,19 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 		} else {
 			r->object_dn = NULL;
 		}
-		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
+		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string1));
-		if (_ptr_string1) {
-			NDR_PULL_ALLOC(ndr, r->string1);
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
+		if (_ptr_attribute_name) {
+			NDR_PULL_ALLOC(ndr, r->attribute_name);
 		} else {
-			r->string1 = NULL;
+			r->attribute_name = NULL;
 		}
-		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string2));
-		if (_ptr_string2) {
-			NDR_PULL_ALLOC(ndr, r->string2);
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_dn_str));
+		if (_ptr_value_dn_str) {
+			NDR_PULL_ALLOC(ndr, r->value_dn_str);
 		} else {
-			r->string2 = NULL;
+			r->value_dn_str = NULL;
 		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumeration_context));
 		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
@@ -9747,29 +9744,29 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pu
 			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, ndr_get_array_length(ndr, &r->object_dn), sizeof(uint16_t), CH_UTF16));
 			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
 		}
-		if (r->string1) {
-			_mem_save_string1_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->string1, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->string1));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->string1));
-			if (ndr_get_array_length(ndr, &r->string1) > ndr_get_array_size(ndr, &r->string1)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string1), ndr_get_array_length(ndr, &r->string1));
+		if (r->attribute_name) {
+			_mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
+			NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
+			NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
+			if (ndr_get_array_length(ndr, &r->attribute_name) > ndr_get_array_size(ndr, &r->attribute_name)) {
+				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->attribute_name), ndr_get_array_length(ndr, &r->attribute_name));
 			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string1, ndr_get_array_length(ndr, &r->string1), sizeof(uint16_t), CH_UTF16));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string1_0, 0);
+			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t)));
+			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, ndr_get_array_length(ndr, &r->attribute_name), sizeof(uint16_t), CH_UTF16));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
 		}
-		if (r->string2) {
-			_mem_save_string2_0 = NDR_PULL_GET_MEM_CTX(ndr);
-			NDR_PULL_SET_MEM_CTX(ndr, r->string2, 0);
-			NDR_CHECK(ndr_pull_array_size(ndr, &r->string2));
-			NDR_CHECK(ndr_pull_array_length(ndr, &r->string2));
-			if (ndr_get_array_length(ndr, &r->string2) > ndr_get_array_size(ndr, &r->string2)) {
-				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string2), ndr_get_array_length(ndr, &r->string2));
+		if (r->value_dn_str) {
+			_mem_save_value_dn_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, r->value_dn_str, 0);
+			NDR_CHECK(ndr_pull_array_size(ndr, &r->value_dn_str));
+			NDR_CHECK(ndr_pull_array_length(ndr, &r->value_dn_str));
+			if (ndr_get_array_length(ndr, &r->value_dn_str) > ndr_get_array_size(ndr, &r->value_dn_str)) {
+				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->value_dn_str), ndr_get_array_length(ndr, &r->value_dn_str));
 			}
-			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t)));
-			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string2, ndr_get_array_length(ndr, &r->string2), sizeof(uint16_t), CH_UTF16));
-			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string2_0, 0);
+			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t)));
+			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->value_dn_str, ndr_get_array_length(ndr, &r->value_dn_str), sizeof(uint16_t), CH_UTF16));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_dn_str_0, 0);
 		}
 	}
 	return NDR_ERR_SUCCESS;
@@ -9786,18 +9783,18 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr,
 		ndr_print_string(ndr, "object_dn", r->object_dn);
 	}
 	ndr->depth--;
-	ndr_print_GUID(ndr, "guid1", &r->guid1);
+	ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
 	ndr_print_uint32(ndr, "flags", r->flags);
-	ndr_print_ptr(ndr, "string1", r->string1);
+	ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
 	ndr->depth++;
-	if (r->string1) {
-		ndr_print_string(ndr, "string1", r->string1);
+	if (r->attribute_name) {
+		ndr_print_string(ndr, "attribute_name", r->attribute_name);
 	}
 	ndr->depth--;
-	ndr_print_ptr(ndr, "string2", r->string2);
+	ndr_print_ptr(ndr, "value_dn_str", r->value_dn_str);
 	ndr->depth++;
-	if (r->string2) {
-		ndr_print_string(ndr, "string2", r->string2);
+	if (r->value_dn_str) {
+		ndr_print_string(ndr, "value_dn_str", r->value_dn_str);
 	}
 	ndr->depth--;
 	ndr_print_uint32(ndr, "enumeration_context", r->enumeration_context);
@@ -13474,9 +13471,12 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, in
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
 		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
-		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
-		NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
-		NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
+		if (r->in.req == NULL) {
+			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+		}
+		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
+		NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
 	}
 	if (flags & NDR_OUT) {
 		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -13487,6 +13487,7 @@ static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, in
 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
 {
 	TALLOC_CTX *_mem_save_bind_handle_0;
+	TALLOC_CTX *_mem_save_req_0;
 	if (flags & NDR_IN) {
 		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 			NDR_PULL_ALLOC(ndr, r->in.bind_handle);
@@ -13495,9 +13496,15 @@ static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, in
 		NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
 		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
-		NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
-		NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
+		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+			NDR_PULL_ALLOC(ndr, r->in.req);
+		}
+		_mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
+		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
+		NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
 	}
 	if (flags & NDR_OUT) {
 		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -13519,9 +13526,12 @@ _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char
 		ndr->depth++;
 		ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
 		ndr->depth--;
-		ndr_print_int32(ndr, "level", r->in.level);
-		ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
-		ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", &r->in.req);
+		ndr_print_uint32(ndr, "level", r->in.level);
+		ndr_print_ptr(ndr, "req", r->in.req);
+		ndr->depth++;
+		ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
+		ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", r->in.req);
+		ndr->depth--;
 		ndr->depth--;
 	}
 	if (flags & NDR_OUT) {
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl
index e98cd29..7a7017e 100644
--- a/librpc/idl/drsuapi.idl
+++ b/librpc/idl/drsuapi.idl
@@ -222,20 +222,20 @@ interface drsuapi
 	} drsuapi_DsReplicaSyncOptions;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list