diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-06-28 22:09:03 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:09:36 -0500 |
commit | 414c47633d89d87011fda08c3c2b8dcbbfbcc2a8 (patch) | |
tree | 214053a5bee4f7da16c723e6b9e7b90a91678cfb /source4/torture/util.c | |
parent | f8d845446114cd138b908de71c2b989a32ea1508 (diff) | |
download | samba-414c47633d89d87011fda08c3c2b8dcbbfbcc2a8.tar.gz samba-414c47633d89d87011fda08c3c2b8dcbbfbcc2a8.tar.bz2 samba-414c47633d89d87011fda08c3c2b8dcbbfbcc2a8.zip |
r16657: Test Jerry's iTunes bug, along with some more error conditions
Volker
(This used to be commit 12aa900eb2ffde3711a30c7e063bfba95128e91d)
Diffstat (limited to 'source4/torture/util.c')
-rw-r--r-- | source4/torture/util.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/source4/torture/util.c b/source4/torture/util.c index d59de9459f..fd2423ab67 100644 --- a/source4/torture/util.c +++ b/source4/torture/util.c @@ -22,6 +22,8 @@ #include "system/filesys.h" #include "system/wait.h" #include "torture/torture.h" +#include "libcli/raw/interfaces.h" +#include "libcli/raw/libcliraw.h" /** create a temporary directory. @@ -115,3 +117,43 @@ NTSTATUS torture_setup_server(TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } + +NTSTATUS torture_second_tcon(TALLOC_CTX *mem_ctx, + struct smbcli_session *session, + const char *sharename, + struct smbcli_tree **res) +{ + union smb_tcon tcon; + struct smbcli_tree *result; + TALLOC_CTX *tmp_ctx; + NTSTATUS status; + + if ((tmp_ctx = talloc_new(mem_ctx)) == NULL) { + return NT_STATUS_NO_MEMORY; + } + + result = smbcli_tree_init(session, tmp_ctx, False); + if (result == NULL) { + talloc_free(tmp_ctx); + return NT_STATUS_NO_MEMORY; + } + + tcon.generic.level = RAW_TCON_TCONX; + tcon.tconx.in.flags = 0; + + /* Ignore share mode security here */ + tcon.tconx.in.password = data_blob(NULL, 0); + tcon.tconx.in.path = sharename; + tcon.tconx.in.device = "?????"; + + status = smb_raw_tcon(result, tmp_ctx, &tcon); + if (!NT_STATUS_IS_OK(status)) { + talloc_free(tmp_ctx); + return status; + } + + result->tid = tcon.tconx.out.tid; + *res = talloc_steal(mem_ctx, result); + talloc_free(tmp_ctx); + return NT_STATUS_OK; +} |