[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-390-g39385f5

Andrew Tridgell tridge at samba.org
Thu Sep 17 01:06:45 MDT 2009


The branch, master has been updated
       via  39385f559c7529214e71171bcdcd2cdbbbb7485e (commit)
       via  8ea2cb2403d455fe899b91be414b88eda1b3eba6 (commit)
       via  9407ab573e492c8ab01c2694d3e6f31924bbb0f8 (commit)
      from  99c3fc19587431efda1ae6161453d84673b32071 (commit)

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


- Log -----------------------------------------------------------------
commit 39385f559c7529214e71171bcdcd2cdbbbb7485e
Author: Andrew Tridgell <tridge at samba.org>
Date:   Thu Sep 17 00:01:00 2009 -0700

    idl: rebuild drsuapi.idl

commit 8ea2cb2403d455fe899b91be414b88eda1b3eba6
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Sep 16 23:45:05 2009 -0700

    idl: added DsExecuteKCC IDL

commit 9407ab573e492c8ab01c2694d3e6f31924bbb0f8
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Sep 16 23:57:32 2009 -0700

    ndr: added --ndr64 flag to ndrdump
    
    This only does pull, but it is useful for w2k8-r2 <-> w2k8-r2 ndrdump
    usage, which is always 64bit.

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

Summary of changes:
 librpc/gen_ndr/cli_drsuapi.c                |   68 ++++++----
 librpc/gen_ndr/cli_drsuapi.h                |   24 ++--
 librpc/gen_ndr/drsuapi.h                    |   21 +++-
 librpc/gen_ndr/ndr_drsuapi.c                |  189 +++++++++++++++++++++++++--
 librpc/gen_ndr/ndr_drsuapi.h                |    7 +-
 librpc/idl/drsuapi.idl                      |   20 +++-
 librpc/ndr/libndr.h                         |    3 +
 librpc/ndr/ndr.c                            |    6 +-
 librpc/ndr/ndr_basic.c                      |   24 +++-
 librpc/tools/ndrdump.c                      |   17 +++-
 source4/rpc_server/drsuapi/dcesrv_drsuapi.c |    6 +-
 11 files changed, 324 insertions(+), 61 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/cli_drsuapi.c b/librpc/gen_ndr/cli_drsuapi.c
index 43d41ea..69171dc 100644
--- a/librpc/gen_ndr/cli_drsuapi.c
+++ b/librpc/gen_ndr/cli_drsuapi.c
@@ -3047,25 +3047,28 @@ NTSTATUS rpccli_drsuapi_DsAddEntry(struct rpc_pipe_client *cli,
 	return werror_to_ntstatus(r.out.result);
 }
 
-struct rpccli_DRSUAPI_EXECUTE_KCC_state {
-	struct DRSUAPI_EXECUTE_KCC orig;
-	struct DRSUAPI_EXECUTE_KCC tmp;
+struct rpccli_drsuapi_DsExecuteKCC_state {
+	struct drsuapi_DsExecuteKCC orig;
+	struct drsuapi_DsExecuteKCC tmp;
 	TALLOC_CTX *out_mem_ctx;
 	NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
 };
 
-static void rpccli_DRSUAPI_EXECUTE_KCC_done(struct tevent_req *subreq);
+static void rpccli_drsuapi_DsExecuteKCC_done(struct tevent_req *subreq);
 
-struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
-						   struct tevent_context *ev,
-						   struct rpc_pipe_client *cli)
+struct tevent_req *rpccli_drsuapi_DsExecuteKCC_send(TALLOC_CTX *mem_ctx,
+						    struct tevent_context *ev,
+						    struct rpc_pipe_client *cli,
+						    struct policy_handle *_bind_handle /* [in] [ref] */,
+						    uint32_t _level /* [in]  */,
+						    union drsuapi_DsExecuteKCCRequest *_req /* [in] [ref,switch_is(level)] */)
 {
 	struct tevent_req *req;
-	struct rpccli_DRSUAPI_EXECUTE_KCC_state *state;
+	struct rpccli_drsuapi_DsExecuteKCC_state *state;
 	struct tevent_req *subreq;
 
 	req = tevent_req_create(mem_ctx, &state,
-				struct rpccli_DRSUAPI_EXECUTE_KCC_state);
+				struct rpccli_drsuapi_DsExecuteKCC_state);
 	if (req == NULL) {
 		return NULL;
 	}
@@ -3073,6 +3076,9 @@ struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
 	state->dispatch_recv = cli->dispatch_recv;
 
 	/* In parameters */
+	state->orig.in.bind_handle = _bind_handle;
+	state->orig.in.level = _level;
+	state->orig.in.req = _req;
 
 	/* Out parameters */
 
@@ -3080,7 +3086,7 @@ struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
 	ZERO_STRUCT(state->orig.out.result);
 
 	if (DEBUGLEVEL >= 10) {
-		NDR_PRINT_IN_DEBUG(DRSUAPI_EXECUTE_KCC, &state->orig);
+		NDR_PRINT_IN_DEBUG(drsuapi_DsExecuteKCC, &state->orig);
 	}
 
 	/* make a temporary copy, that we pass to the dispatch function */
@@ -3088,21 +3094,21 @@ struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
 
 	subreq = cli->dispatch_send(state, ev, cli,
 				    &ndr_table_drsuapi,
-				    NDR_DRSUAPI_EXECUTE_KCC,
+				    NDR_DRSUAPI_DSEXECUTEKCC,
 				    &state->tmp);
 	if (tevent_req_nomem(subreq, req)) {
 		return tevent_req_post(req, ev);
 	}
-	tevent_req_set_callback(subreq, rpccli_DRSUAPI_EXECUTE_KCC_done, req);
+	tevent_req_set_callback(subreq, rpccli_drsuapi_DsExecuteKCC_done, req);
 	return req;
 }
 
-static void rpccli_DRSUAPI_EXECUTE_KCC_done(struct tevent_req *subreq)
+static void rpccli_drsuapi_DsExecuteKCC_done(struct tevent_req *subreq)
 {
 	struct tevent_req *req = tevent_req_callback_data(
 		subreq, struct tevent_req);
-	struct rpccli_DRSUAPI_EXECUTE_KCC_state *state = tevent_req_data(
-		req, struct rpccli_DRSUAPI_EXECUTE_KCC_state);
+	struct rpccli_drsuapi_DsExecuteKCC_state *state = tevent_req_data(
+		req, struct rpccli_drsuapi_DsExecuteKCC_state);
 	NTSTATUS status;
 	TALLOC_CTX *mem_ctx;
 
@@ -3128,18 +3134,18 @@ static void rpccli_DRSUAPI_EXECUTE_KCC_done(struct tevent_req *subreq)
 	ZERO_STRUCT(state->tmp);
 
 	if (DEBUGLEVEL >= 10) {
-		NDR_PRINT_OUT_DEBUG(DRSUAPI_EXECUTE_KCC, &state->orig);
+		NDR_PRINT_OUT_DEBUG(drsuapi_DsExecuteKCC, &state->orig);
 	}
 
 	tevent_req_done(req);
 }
 
-NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC_recv(struct tevent_req *req,
-					 TALLOC_CTX *mem_ctx,
-					 WERROR *result)
+NTSTATUS rpccli_drsuapi_DsExecuteKCC_recv(struct tevent_req *req,
+					  TALLOC_CTX *mem_ctx,
+					  WERROR *result)
 {
-	struct rpccli_DRSUAPI_EXECUTE_KCC_state *state = tevent_req_data(
-		req, struct rpccli_DRSUAPI_EXECUTE_KCC_state);
+	struct rpccli_drsuapi_DsExecuteKCC_state *state = tevent_req_data(
+		req, struct rpccli_drsuapi_DsExecuteKCC_state);
 	NTSTATUS status;
 
 	if (tevent_req_is_nterror(req, &status)) {
@@ -3157,23 +3163,29 @@ NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC_recv(struct tevent_req *req,
 	return NT_STATUS_OK;
 }
 
-NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC(struct rpc_pipe_client *cli,
-				    TALLOC_CTX *mem_ctx,
-				    WERROR *werror)
+NTSTATUS rpccli_drsuapi_DsExecuteKCC(struct rpc_pipe_client *cli,
+				     TALLOC_CTX *mem_ctx,
+				     struct policy_handle *bind_handle /* [in] [ref] */,
+				     uint32_t level /* [in]  */,
+				     union drsuapi_DsExecuteKCCRequest *req /* [in] [ref,switch_is(level)] */,
+				     WERROR *werror)
 {
-	struct DRSUAPI_EXECUTE_KCC r;
+	struct drsuapi_DsExecuteKCC r;
 	NTSTATUS status;
 
 	/* In parameters */
+	r.in.bind_handle = bind_handle;
+	r.in.level = level;
+	r.in.req = req;
 
 	if (DEBUGLEVEL >= 10) {
-		NDR_PRINT_IN_DEBUG(DRSUAPI_EXECUTE_KCC, &r);
+		NDR_PRINT_IN_DEBUG(drsuapi_DsExecuteKCC, &r);
 	}
 
 	status = cli->dispatch(cli,
 				mem_ctx,
 				&ndr_table_drsuapi,
-				NDR_DRSUAPI_EXECUTE_KCC,
+				NDR_DRSUAPI_DSEXECUTEKCC,
 				&r);
 
 	if (!NT_STATUS_IS_OK(status)) {
@@ -3181,7 +3193,7 @@ NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC(struct rpc_pipe_client *cli,
 	}
 
 	if (DEBUGLEVEL >= 10) {
-		NDR_PRINT_OUT_DEBUG(DRSUAPI_EXECUTE_KCC, &r);
+		NDR_PRINT_OUT_DEBUG(drsuapi_DsExecuteKCC, &r);
 	}
 
 	if (NT_STATUS_IS_ERR(status)) {
diff --git a/librpc/gen_ndr/cli_drsuapi.h b/librpc/gen_ndr/cli_drsuapi.h
index 0549bdf..970e65e 100644
--- a/librpc/gen_ndr/cli_drsuapi.h
+++ b/librpc/gen_ndr/cli_drsuapi.h
@@ -281,15 +281,21 @@ NTSTATUS rpccli_drsuapi_DsAddEntry(struct rpc_pipe_client *cli,
 				   int32_t *level_out /* [out] [ref] */,
 				   union drsuapi_DsAddEntryCtr *ctr /* [out] [ref,switch_is(*level_out)] */,
 				   WERROR *werror);
-struct tevent_req *rpccli_DRSUAPI_EXECUTE_KCC_send(TALLOC_CTX *mem_ctx,
-						   struct tevent_context *ev,
-						   struct rpc_pipe_client *cli);
-NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC_recv(struct tevent_req *req,
-					 TALLOC_CTX *mem_ctx,
-					 WERROR *result);
-NTSTATUS rpccli_DRSUAPI_EXECUTE_KCC(struct rpc_pipe_client *cli,
-				    TALLOC_CTX *mem_ctx,
-				    WERROR *werror);
+struct tevent_req *rpccli_drsuapi_DsExecuteKCC_send(TALLOC_CTX *mem_ctx,
+						    struct tevent_context *ev,
+						    struct rpc_pipe_client *cli,
+						    struct policy_handle *_bind_handle /* [in] [ref] */,
+						    uint32_t _level /* [in]  */,
+						    union drsuapi_DsExecuteKCCRequest *_req /* [in] [ref,switch_is(level)] */);
+NTSTATUS rpccli_drsuapi_DsExecuteKCC_recv(struct tevent_req *req,
+					  TALLOC_CTX *mem_ctx,
+					  WERROR *result);
+NTSTATUS rpccli_drsuapi_DsExecuteKCC(struct rpc_pipe_client *cli,
+				     TALLOC_CTX *mem_ctx,
+				     struct policy_handle *bind_handle /* [in] [ref] */,
+				     uint32_t level /* [in]  */,
+				     union drsuapi_DsExecuteKCCRequest *req /* [in] [ref,switch_is(level)] */,
+				     WERROR *werror);
 struct tevent_req *rpccli_drsuapi_DsReplicaGetInfo_send(TALLOC_CTX *mem_ctx,
 							struct tevent_context *ev,
 							struct rpc_pipe_client *cli,
diff --git a/librpc/gen_ndr/drsuapi.h b/librpc/gen_ndr/drsuapi.h
index b7ebe4c..2e913e9 100644
--- a/librpc/gen_ndr/drsuapi.h
+++ b/librpc/gen_ndr/drsuapi.h
@@ -1167,6 +1167,19 @@ union drsuapi_DsAddEntryCtr {
 	struct drsuapi_DsAddEntryCtr3 ctr3;/* [case(3)] */
 }/* [switch_type(int32)] */;
 
+/* bitmap drsuapi_DsExecuteKCCFlags */
+#define DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION ( 0x00000001 )
+#define DRSUAPI_DS_EXECUTE_KCC_DAMPED ( 0x00000002 )
+
+struct drsuapi_DsExecuteKCC1 {
+	uint32_t taskID;
+	uint32_t flags;
+};
+
+union drsuapi_DsExecuteKCCRequest {
+	struct drsuapi_DsExecuteKCC1 ctr1;/* [case] */
+}/* [switch_type(uint32)] */;
+
 enum drsuapi_DsReplicaGetInfoLevel
 #ifndef USE_UINT_ENUMS
  {
@@ -1769,7 +1782,13 @@ struct drsuapi_DsAddEntry {
 };
 
 
-struct DRSUAPI_EXECUTE_KCC {
+struct drsuapi_DsExecuteKCC {
+	struct {
+		struct policy_handle *bind_handle;/* [ref] */
+		uint32_t level;
+		union drsuapi_DsExecuteKCCRequest *req;/* [ref,switch_is(level)] */
+	} in;
+
 	struct {
 		WERROR result;
 	} out;
diff --git a/librpc/gen_ndr/ndr_drsuapi.c b/librpc/gen_ndr/ndr_drsuapi.c
index 466f9c3..f5d2d17 100644
--- a/librpc/gen_ndr/ndr_drsuapi.c
+++ b/librpc/gen_ndr/ndr_drsuapi.c
@@ -9062,6 +9062,135 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char
 	}
 }
 
+static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+	uint32_t v;
+	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+	*r = v;
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCFlags(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+	ndr_print_uint32(ndr, name, r);
+	ndr->depth++;
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION, r);
+	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_DAMPED", DRSUAPI_DS_EXECUTE_KCC_DAMPED, r);
+	ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsExecuteKCC1 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_push_align(ndr, 4));
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->taskID));
+		NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, r->flags));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsExecuteKCC1 *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->taskID));
+		NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, &r->flags));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsExecuteKCC1 *r)
+{
+	ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC1");
+	ndr->depth++;
+	ndr_print_uint32(ndr, "taskID", r->taskID);
+	ndr_print_drsuapi_DsExecuteKCCFlags(ndr, "flags", r->flags);
+	ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsExecuteKCCRequest *r)
+{
+	if (ndr_flags & NDR_SCALARS) {
+		int level = ndr_push_get_switch_value(ndr, r);
+		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
+		switch (level) {
+			case 1: {
+				NDR_CHECK(ndr_push_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
+			break; }
+
+			default:
+				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+		}
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		int level = ndr_push_get_switch_value(ndr, r);
+		switch (level) {
+			case 1:
+			break;
+
+			default:
+				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsExecuteKCCRequest *r)
+{
+	int level;
+	uint32_t _level;
+	level = ndr_pull_get_switch_value(ndr, r);
+	if (ndr_flags & NDR_SCALARS) {
+		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__);
+		}
+		switch (level) {
+			case 1: {
+				NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
+			break; }
+
+			default:
+				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+		}
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+		switch (level) {
+			case 1:
+			break;
+
+			default:
+				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
+		}
+	}
+	return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsExecuteKCCRequest *r)
+{
+	int level;
+	level = ndr_print_get_switch_value(ndr, r);
+	ndr_print_union(ndr, name, level, "drsuapi_DsExecuteKCCRequest");
+	switch (level) {
+		case 1:
+			ndr_print_drsuapi_DsExecuteKCC1(ndr, "ctr1", &r->ctr1);
+		break;
+
+		default:
+			ndr_print_bad_level(ndr, name, level);
+	}
+}
+
 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel r)
 {
 	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
@@ -14497,9 +14626,19 @@ _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *na
 	ndr->depth--;
 }
 
-static enum ndr_err_code ndr_push_DRSUAPI_EXECUTE_KCC(struct ndr_push *ndr, int flags, const struct DRSUAPI_EXECUTE_KCC *r)
+static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC(struct ndr_push *ndr, int flags, const struct drsuapi_DsExecuteKCC *r)
 {
 	if (flags & NDR_IN) {
+		if (r->in.bind_handle == NULL) {
+			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_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_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
 	}
 	if (flags & NDR_OUT) {
 		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -14507,9 +14646,27 @@ static enum ndr_err_code ndr_push_DRSUAPI_EXECUTE_KCC(struct ndr_push *ndr, int
 	return NDR_ERR_SUCCESS;
 }
 
-static enum ndr_err_code ndr_pull_DRSUAPI_EXECUTE_KCC(struct ndr_pull *ndr, int flags, struct DRSUAPI_EXECUTE_KCC *r)
+static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC(struct ndr_pull *ndr, int flags, struct drsuapi_DsExecuteKCC *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);
+		}
+		_mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		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_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_DsExecuteKCCRequest(ndr, NDR_SCALARS, 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));
@@ -14517,20 +14674,30 @@ static enum ndr_err_code ndr_pull_DRSUAPI_EXECUTE_KCC(struct ndr_pull *ndr, int
 	return NDR_ERR_SUCCESS;
 }
 
-_PUBLIC_ void ndr_print_DRSUAPI_EXECUTE_KCC(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_EXECUTE_KCC *r)
+_PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsExecuteKCC *r)
 {
-	ndr_print_struct(ndr, name, "DRSUAPI_EXECUTE_KCC");
+	ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC");
 	ndr->depth++;
 	if (flags & NDR_SET_VALUES) {
 		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 	}
 	if (flags & NDR_IN) {
-		ndr_print_struct(ndr, "in", "DRSUAPI_EXECUTE_KCC");
+		ndr_print_struct(ndr, "in", "drsuapi_DsExecuteKCC");
 		ndr->depth++;
+		ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
+		ndr->depth++;
+		ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
+		ndr->depth--;
+		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_DsExecuteKCCRequest(ndr, "req", r->in.req);
+		ndr->depth--;
 		ndr->depth--;
 	}
 	if (flags & NDR_OUT) {
-		ndr_print_struct(ndr, "out", "DRSUAPI_EXECUTE_KCC");
+		ndr_print_struct(ndr, "out", "drsuapi_DsExecuteKCC");
 		ndr->depth++;
 		ndr_print_WERROR(ndr, "result", r->out.result);
 		ndr->depth--;
@@ -15167,11 +15334,11 @@ static const struct ndr_interface_call drsuapi_calls[] = {
 		false,
 	},
 	{
-		"DRSUAPI_EXECUTE_KCC",
-		sizeof(struct DRSUAPI_EXECUTE_KCC),
-		(ndr_push_flags_fn_t) ndr_push_DRSUAPI_EXECUTE_KCC,
-		(ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_EXECUTE_KCC,
-		(ndr_print_function_t) ndr_print_DRSUAPI_EXECUTE_KCC,
+		"drsuapi_DsExecuteKCC",
+		sizeof(struct drsuapi_DsExecuteKCC),
+		(ndr_push_flags_fn_t) ndr_push_drsuapi_DsExecuteKCC,
+		(ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsExecuteKCC,
+		(ndr_print_function_t) ndr_print_drsuapi_DsExecuteKCC,
 		false,
 	},
 	{
diff --git a/librpc/gen_ndr/ndr_drsuapi.h b/librpc/gen_ndr/ndr_drsuapi.h
index c4634b3..94afb2d 100644
--- a/librpc/gen_ndr/ndr_drsuapi.h
+++ b/librpc/gen_ndr/ndr_drsuapi.h
@@ -48,7 +48,7 @@ extern const struct ndr_interface_table ndr_table_drsuapi;
 
 #define NDR_DRSUAPI_DSADDENTRY (0x11)
 
-#define NDR_DRSUAPI_EXECUTE_KCC (0x12)
+#define NDR_DRSUAPI_DSEXECUTEKCC (0x12)
 
 #define NDR_DRSUAPI_DSREPLICAGETINFO (0x13)
 
@@ -238,6 +238,9 @@ void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print *ndr, const c
 void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr2 *r);
 void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr3 *r);
 void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryCtr *r);
+void ndr_print_drsuapi_DsExecuteKCCFlags(struct ndr_print *ndr, const char *name, uint32_t r);
+void ndr_print_drsuapi_DsExecuteKCC1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsExecuteKCC1 *r);
+void ndr_print_drsuapi_DsExecuteKCCRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsExecuteKCCRequest *r);
 void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaGetInfoLevel r);
 void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaInfoType r);
 void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest1 *r);
@@ -298,7 +301,7 @@ void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print *ndr, const ch
 enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int flags, const struct drsuapi_DsAddEntry *r);
 enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int flags, struct drsuapi_DsAddEntry *r);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list