From: Stefan Metzmacher Date: Tue, 27 Aug 2013 11:23:04 +0000 (+0200) Subject: s3:rpc_client: pass object and table to rpccli_bh_create() X-Git-Url: http://git.samba.org/?p=mat%2Fsamba.git;a=commitdiff_plain;h=872486bbd039c18eed13f30073a99b7a15f6b1b8 s3:rpc_client: pass object and table to rpccli_bh_create() Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 59dc7b6dc2..48ed92ce50 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -2048,15 +2048,17 @@ static const struct dcerpc_binding_handle_ops rpccli_bh_ops = { }; /* initialise a rpc_pipe_client binding handle */ -struct dcerpc_binding_handle *rpccli_bh_create(struct rpc_pipe_client *c) +struct dcerpc_binding_handle *rpccli_bh_create(struct rpc_pipe_client *c, + const struct GUID *object, + const struct ndr_interface_table *table) { struct dcerpc_binding_handle *h; struct rpccli_bh_state *hs; h = dcerpc_binding_handle_create(c, &rpccli_bh_ops, - NULL, - NULL, /* TODO */ + object, + table, &hs, struct rpccli_bh_state, __location__); @@ -2252,7 +2254,7 @@ static NTSTATUS rpc_pipe_open_tcp_port(TALLOC_CTX *mem_ctx, const char *host, result->transport->transport = NCACN_IP_TCP; - result->binding_handle = rpccli_bh_create(result); + result->binding_handle = rpccli_bh_create(result, NULL, table); if (result->binding_handle == NULL) { TALLOC_FREE(result); return NT_STATUS_NO_MEMORY; @@ -2491,7 +2493,7 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path, result->transport->transport = NCALRPC; - result->binding_handle = rpccli_bh_create(result); + result->binding_handle = rpccli_bh_create(result, NULL, table); if (result->binding_handle == NULL) { TALLOC_FREE(result); return NT_STATUS_NO_MEMORY; @@ -2582,7 +2584,7 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli, DLIST_ADD(np_ref->cli->pipe_list, np_ref->pipe); talloc_set_destructor(np_ref, rpc_pipe_client_np_ref_destructor); - result->binding_handle = rpccli_bh_create(result); + result->binding_handle = rpccli_bh_create(result, NULL, table); if (result->binding_handle == NULL) { TALLOC_FREE(result); return NT_STATUS_NO_MEMORY; diff --git a/source3/rpc_client/cli_pipe.h b/source3/rpc_client/cli_pipe.h index ab993739b2..e38767d5da 100644 --- a/source3/rpc_client/cli_pipe.h +++ b/source3/rpc_client/cli_pipe.h @@ -68,7 +68,9 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path, const struct ndr_interface_table *table, struct rpc_pipe_client **presult); -struct dcerpc_binding_handle *rpccli_bh_create(struct rpc_pipe_client *c); +struct dcerpc_binding_handle *rpccli_bh_create(struct rpc_pipe_client *c, + const struct GUID *object, + const struct ndr_interface_table *table); NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli, const struct ndr_interface_table *table, diff --git a/source3/rpc_server/rpc_ncacn_np.c b/source3/rpc_server/rpc_ncacn_np.c index 9c1599ecf4..c58f97dec9 100644 --- a/source3/rpc_server/rpc_ncacn_np.c +++ b/source3/rpc_server/rpc_ncacn_np.c @@ -640,7 +640,7 @@ struct np_proxy_state *make_external_rpc_pipe_p(TALLOC_CTX *mem_ctx, static NTSTATUS rpc_pipe_open_external(TALLOC_CTX *mem_ctx, const char *pipe_name, - const struct ndr_syntax_id *abstract_syntax, + const struct ndr_interface_table *table, const struct auth_session_info *session_info, struct rpc_pipe_client **_result) { @@ -675,7 +675,7 @@ static NTSTATUS rpc_pipe_open_external(TALLOC_CTX *mem_ctx, goto done; } - result->abstract_syntax = *abstract_syntax; + result->abstract_syntax = table->syntax_id; result->transfer_syntax = ndr_transfer_syntax_ndr; result->desthost = get_myname(result); @@ -696,7 +696,7 @@ static NTSTATUS rpc_pipe_open_external(TALLOC_CTX *mem_ctx, goto done; } - result->binding_handle = rpccli_bh_create(result); + result->binding_handle = rpccli_bh_create(result, NULL, table); if (result->binding_handle == NULL) { status = NT_STATUS_NO_MEMORY; DEBUG(0, ("Failed to create binding handle.\n")); @@ -821,7 +821,7 @@ NTSTATUS rpc_pipe_open_interface(TALLOC_CTX *mem_ctx, * to spoolssd. */ status = rpc_pipe_open_external(tmp_ctx, - pipe_name, &table->syntax_id, + pipe_name, table, session_info, &cli); if (!NT_STATUS_IS_OK(status)) {