diff options
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/gen_ndr/cli_drsuapi.c | 8 | ||||
-rw-r--r-- | librpc/gen_ndr/cli_drsuapi.h | 8 | ||||
-rw-r--r-- | librpc/gen_ndr/drsuapi.h | 10 | ||||
-rw-r--r-- | librpc/gen_ndr/ndr_drsuapi.c | 96 |
4 files changed, 66 insertions, 56 deletions
diff --git a/librpc/gen_ndr/cli_drsuapi.c b/librpc/gen_ndr/cli_drsuapi.c index c261a79f62..352442f9f9 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 970e65e1ba..c2ab1be61a 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 41f541a9c7..3f7bf15bf7 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; @@ -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 681af120f1..d3f77ce17f 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__); } @@ -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) { |