diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-09-02 11:26:58 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:58:29 -0500 |
commit | 3a899d9a92923b93f60a0b83507775ad052624b4 (patch) | |
tree | c47092ad02f74777649d7c59960c1aee47b60951 /source4 | |
parent | 58bb944d81a42844df3a57d4a58e07b95ad35fb6 (diff) | |
download | samba-3a899d9a92923b93f60a0b83507775ad052624b4.tar.gz samba-3a899d9a92923b93f60a0b83507775ad052624b4.tar.bz2 samba-3a899d9a92923b93f60a0b83507775ad052624b4.zip |
r2182: force the torture test domain join to happen on SMB to prevent the
LSAKEY problem holding up other tests
(This used to be commit ad8d54fd7dd93cb984d23acecfc1c611b63a5d58)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/torture/rpc/testjoin.c | 10 | ||||
-rw-r--r-- | source4/torture/torture.c | 35 |
2 files changed, 39 insertions, 6 deletions
diff --git a/source4/torture/rpc/testjoin.c b/source4/torture/rpc/testjoin.c index 32ea6c5ce4..a4a4979895 100644 --- a/source4/torture/rpc/testjoin.c +++ b/source4/torture/rpc/testjoin.c @@ -123,12 +123,12 @@ void *torture_join_domain(const char *machine_name, join->mem_ctx = mem_ctx; - printf("Connecting to SAMR\n"); + printf("Connecting to SAMR (forced ncacn_np)\n"); - status = torture_rpc_connection(&join->p, - DCERPC_SAMR_NAME, - DCERPC_SAMR_UUID, - DCERPC_SAMR_VERSION); + status = torture_rpc_connection_smb(&join->p, + DCERPC_SAMR_NAME, + DCERPC_SAMR_UUID, + DCERPC_SAMR_VERSION); if (!NT_STATUS_IS_OK(status)) { goto failed; } diff --git a/source4/torture/torture.c b/source4/torture/torture.c index e3a7d8e5d8..b1e6695e9e 100644 --- a/source4/torture/torture.c +++ b/source4/torture/torture.c @@ -136,7 +136,7 @@ BOOL torture_close_connection(struct smbcli_state *c) } -/* open a rpc connection to a named pipe */ +/* open a rpc connection to the chosen binding string */ NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, const char *pipe_name, const char *pipe_uuid, @@ -158,6 +158,39 @@ NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, return status; } +/* open a rpc connection to a named pipe */ +NTSTATUS torture_rpc_connection_smb(struct dcerpc_pipe **p, + const char *pipe_name, + const char *pipe_uuid, + uint32_t pipe_version) +{ + 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"); + + if (!binding) { + printf("You must specify a ncacn binding string\n"); + return NT_STATUS_INVALID_PARAMETER; + } + + status = dcerpc_parse_binding(mem_ctx, binding, &b); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(0,("Failed to parse dcerpc binding '%s'\n", binding)); + talloc_destroy(mem_ctx); + return status; + } + + b.transport = NCACN_NP; + + status = dcerpc_pipe_connect_b(p, &b, pipe_uuid, pipe_version, + lp_parm_string(-1, "torture", "userdomain"), + lp_parm_string(-1, "torture", "username"), + lp_parm_string(-1, "torture", "password")); + + return status; +} + /* close a rpc connection to a named pipe */ NTSTATUS torture_rpc_close(struct dcerpc_pipe *p) { |