diff options
author | Andrew Bartlett <abartlet@samba.org> | 2005-03-22 08:00:45 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:11:11 -0500 |
commit | 645711c602313940dcf80ec786557920ecfbf884 (patch) | |
tree | 77c5f5c5f1285677eaaf7a3fa62bf0b2540e153f /source4/torture/torture.c | |
parent | 376b03ebd895b221b70058ee18bea50587388182 (diff) | |
download | samba-645711c602313940dcf80ec786557920ecfbf884.tar.gz samba-645711c602313940dcf80ec786557920ecfbf884.tar.bz2 samba-645711c602313940dcf80ec786557920ecfbf884.zip |
r5941: Commit this patch much earlier than I would normally prefer, but metze needs a working tree...
The main volume of this patch was what I started working on today:
- Cleans up memory handling around DCE/RPC pipes, to have a parent talloc context.
- Uses sepereate inner loops for some of the DCE/RPC tests
The other and more important part of this patch fixes issues
surrounding the new credentials framwork:
This makes the struct cli_credentials always a talloc() structure,
rather than on the stack. Parts of the cli_credentials code already
assumed this.
There were other issues, particularly in the DCERPC over SMB handling,
as well as little things that had to be tidied up before test_w2k3.sh
would start to pass.
Andrew Bartlett
(This used to be commit 0453f9d05d2e336fba1f85dbf2718d01fa2bf778)
Diffstat (limited to 'source4/torture/torture.c')
-rw-r--r-- | source4/torture/torture.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/source4/torture/torture.c b/source4/torture/torture.c index cdc9efbf7c..4fca36a9ae 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -120,7 +120,8 @@ BOOL torture_close_connection(struct smbcli_state *c) } /* open a rpc connection to the chosen binding string */ -NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, +NTSTATUS torture_rpc_connection(TALLOC_CTX *parent_ctx, + struct dcerpc_pipe **p, const char *pipe_name, const char *pipe_uuid, uint32_t pipe_version) @@ -133,14 +134,16 @@ NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, return NT_STATUS_INVALID_PARAMETER; } - status = dcerpc_pipe_connect(p, binding, pipe_uuid, pipe_version, - cmdline_credentials); + status = dcerpc_pipe_connect(parent_ctx, + p, binding, pipe_uuid, pipe_version, + cmdline_credentials); return status; } /* open a rpc connection to a specific transport */ -NTSTATUS torture_rpc_connection_transport(struct dcerpc_pipe **p, +NTSTATUS torture_rpc_connection_transport(TALLOC_CTX *parent_ctx, + struct dcerpc_pipe **p, const char *pipe_name, const char *pipe_uuid, uint32_t pipe_version, @@ -149,10 +152,11 @@ NTSTATUS torture_rpc_connection_transport(struct dcerpc_pipe **p, NTSTATUS status; const char *binding = lp_parm_string(-1, "torture", "binding"); struct dcerpc_binding *b; - TALLOC_CTX *mem_ctx = talloc_init("torture_rpc_connection_smb"); + TALLOC_CTX *mem_ctx = talloc_named(parent_ctx, 0, "torture_rpc_connection_smb"); if (!binding) { printf("You must specify a ncacn binding string\n"); + talloc_free(mem_ctx); return NT_STATUS_INVALID_PARAMETER; } @@ -165,21 +169,18 @@ NTSTATUS torture_rpc_connection_transport(struct dcerpc_pipe **p, b->transport = transport; - status = dcerpc_pipe_connect_b(p, b, pipe_uuid, pipe_version, + status = dcerpc_pipe_connect_b(mem_ctx, p, b, pipe_uuid, pipe_version, cmdline_credentials); - + if (NT_STATUS_IS_OK(status)) { + *p = talloc_reference(parent_ctx, *p); + } else { + *p = NULL; + } + talloc_free(mem_ctx); return status; } -/* close a rpc connection to a named pipe */ -NTSTATUS torture_rpc_close(struct dcerpc_pipe *p) -{ - dcerpc_pipe_close(p); - return NT_STATUS_OK; -} - - /* check if the server produced the expected error code */ BOOL check_error(const char *location, struct smbcli_state *c, uint8_t eclass, uint32_t ecode, NTSTATUS nterr) @@ -2636,7 +2637,7 @@ static BOOL is_binding_string(const char *binding_string) #endif pc = poptGetContext("smbtorture", argc, (const char **) argv, long_options, - POPT_CONTEXT_KEEP_FIRST); + POPT_CONTEXT_KEEP_FIRST); poptSetOtherOptionHelp(pc, "<binding>|<unc> TEST1 TEST2 ..."); |