diff options
author | Volker Lendecke <vl@samba.org> | 2008-04-19 18:17:13 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-04-20 00:12:52 +0200 |
commit | b46d340fd5d7e88684ac77000e17c1899ff608b2 (patch) | |
tree | d234eb0582e41f91dc7c200c98c0752927c707e0 /source3/rpc_client | |
parent | fb73de3b927e02fbc056565714ecbe83c7645dc2 (diff) | |
download | samba-b46d340fd5d7e88684ac77000e17c1899ff608b2.tar.gz samba-b46d340fd5d7e88684ac77000e17c1899ff608b2.tar.bz2 samba-b46d340fd5d7e88684ac77000e17c1899ff608b2.zip |
Refactoring: Make struct rpc_pipe_client its own talloc parent
(This used to be commit a6d74a5a562b54f0b36934965f545fdeb1e8b34a)
Diffstat (limited to 'source3/rpc_client')
-rw-r--r-- | source3/rpc_client/cli_netlogon.c | 4 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 32 |
2 files changed, 15 insertions, 21 deletions
diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index 851a4a8da8..478a855882 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -159,7 +159,7 @@ NTSTATUS rpccli_netlogon_setup_creds(struct rpc_pipe_client *cli, generate_random_buffer(clnt_chal_send.data, 8); /* Get the server challenge. */ - result = rpccli_netr_ServerReqChallenge(cli, cli->mem_ctx, + result = rpccli_netr_ServerReqChallenge(cli, talloc_tos(), dc->remote_machine, clnt_name, &clnt_chal_send, @@ -180,7 +180,7 @@ NTSTATUS rpccli_netlogon_setup_creds(struct rpc_pipe_client *cli, * Send client auth-2 challenge and receive server repy. */ - result = rpccli_netr_ServerAuthenticate2(cli, cli->mem_ctx, + result = rpccli_netr_ServerAuthenticate2(cli, talloc_tos(), dc->remote_machine, dc->mach_acct, sec_chan_type, diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index bc49e24df1..a94da8b79b 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -1979,7 +1979,7 @@ static NTSTATUS rpc_finish_spnego_ntlmssp_bind(struct rpc_pipe_client *cli, /* Initialize the returning data struct. */ prs_mem_free(rbuf); - prs_init_empty(rbuf, cli->mem_ctx, UNMARSHALL); + prs_init_empty(rbuf, talloc_tos(), UNMARSHALL); nt_status = rpc_api_pipe(cli, &rpc_out, rbuf, RPC_ALTCONTRESP); if (!NT_STATUS_IS_OK(nt_status)) { @@ -2052,7 +2052,7 @@ static NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli, return NT_STATUS_INVALID_PARAMETER; } - prs_init_empty(&rpc_out, cli->mem_ctx, MARSHALL); + prs_init_empty(&rpc_out, talloc_tos(), MARSHALL); rpc_call_id = get_rpc_call_id(); @@ -2068,7 +2068,7 @@ static NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli, } /* Initialize the incoming data struct. */ - prs_init_empty(&rbuf, cli->mem_ctx, UNMARSHALL); + prs_init_empty(&rbuf, talloc_tos(), UNMARSHALL); /* send data on \PIPE\. receive a response */ status = rpc_api_pipe(cli, &rpc_out, &rbuf, RPC_BINDACK); @@ -2188,7 +2188,6 @@ static NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli, static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe_idx, NTSTATUS *perr) { - TALLOC_CTX *mem_ctx; struct rpc_pipe_client *result; int fnum; @@ -2204,18 +2203,11 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe /* The pipe name index must fall within our array */ SMB_ASSERT((pipe_idx >= 0) && (pipe_idx < PI_MAX_PIPES)); - mem_ctx = talloc_init("struct rpc_pipe_client"); - if (mem_ctx == NULL) { - return NULL; - } - - result = TALLOC_ZERO_P(mem_ctx, struct rpc_pipe_client); + result = TALLOC_ZERO_P(NULL, struct rpc_pipe_client); if (result == NULL) { return NULL; } - result->mem_ctx = mem_ctx; - result->pipe_name = cli_get_pipe_name(pipe_idx); fnum = cli_nt_create(cli, result->pipe_name, DESIRED_ACCESS_PIPE); @@ -2226,7 +2218,7 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe result->pipe_name, cli->desthost, cli_errstr(cli))); *perr = cli_get_nt_error(cli); - talloc_destroy(result->mem_ctx); + talloc_destroy(result); return NULL; } @@ -2238,9 +2230,9 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe if (pipe_idx == PI_NETLOGON) { /* Set up a netlogon credential chain for a netlogon pipe. */ - result->dc = TALLOC_ZERO_P(mem_ctx, struct dcinfo); + result->dc = TALLOC_ZERO_P(result, struct dcinfo); if (result->dc == NULL) { - talloc_destroy(result->mem_ctx); + talloc_destroy(result); return NULL; } } @@ -2525,7 +2517,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_schannel_with_key(struct cli_state *cl return NULL; } - result->auth.a_u.schannel_auth = TALLOC_ZERO_P(result->mem_ctx, struct schannel_auth_struct); + result->auth.a_u.schannel_auth = TALLOC_ZERO_P( + result, struct schannel_auth_struct); if (!result->auth.a_u.schannel_auth) { cli_rpc_pipe_close(result); *perr = NT_STATUS_NO_MEMORY; @@ -2693,8 +2686,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_krb5(struct cli_state *cli, /* Default service principal is "desthost$@realm" */ if (!service_princ) { - service_princ = talloc_asprintf(result->mem_ctx, "%s$@%s", - cli->desthost, lp_realm() ); + service_princ = talloc_asprintf(result, "%s$@%s", + cli->desthost, lp_realm() ); if (!service_princ) { cli_rpc_pipe_close(result); return NULL; @@ -2710,7 +2703,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_krb5(struct cli_state *cli, } } - result->auth.a_u.kerberos_auth = TALLOC_ZERO_P(result->mem_ctx, struct kerberos_auth_struct); + result->auth.a_u.kerberos_auth = TALLOC_ZERO_P( + result, struct kerberos_auth_struct); if (!result->auth.a_u.kerberos_auth) { cli_rpc_pipe_close(result); *perr = NT_STATUS_NO_MEMORY; |