struct smbXcli_tcon *saved_tcon = tree->smbXcli;
struct smbXcli_session *saved_session = tree->session->smbXcli;
+ struct smb2_session *session2;
+ struct smb2_tree *tree2;
+
+ if (!torture_smb2_session_setup(tctx, tree->session->transport,
+ 0, /* previous_session_id */
+ tctx, &session2))
+ {
+ torture_warning(tctx, "session setup failed.\n");
+ ret = false;
+ goto done;
+ }
+
+ if (!torture_smb2_tree_connect(tctx, session2, tctx, &tree2)) {
+ torture_warning(tctx, "tree connect failed.\n");
+ ret = false;
+ goto done;
+ }
+
smb2_transport_credits_ask_num(tree->session->transport, 2);
smb2_util_unlink(tree, fname);
struct smb2_request *req[5];
struct smbXcli_tcon *saved_tcon = tree->smbXcli;
struct smbXcli_session *saved_session = tree->session->smbXcli;
-
+ struct smbXcli_session *saved_session2;
+ struct smbXcli_session *saved_session3;
+
+ struct smb2_session *session2;
+ struct smb2_tree *tree2;
+
+ if (!torture_smb2_session_setup(tctx, tree->session->transport,
+ 0, /* previous_session_id */
+ tctx, &session2))
+ {
+ torture_warning(tctx, "session setup failed.\n");
+ ret = false;
+ goto done;
+ }
+ saved_session2 = session2->smbXcli;
+
+ if (!torture_smb2_tree_connect(tctx, session2, tctx, &tree2)) {
+ torture_warning(tctx, "tree connect failed.\n");
+ ret = false;
+ goto done;
+ }
smb2_transport_credits_ask_num(tree->session->transport, 5);
smb2_util_unlink(tree, fname);
tree->session->smbXcli = smbXcli_session_create(tree->session,
tree->session->transport->conn);
smb2cli_session_set_id_and_flags(tree->session->smbXcli, UINT64_MAX, 0);
+ saved_session3 = tree->session->smbXcli;
+ tree->session->smbXcli = saved_session2;
req[1] = smb2_close_send(tree, &cl);
+ tree->session->smbXcli = saved_session3;
req[2] = smb2_close_send(tree, &cl);
req[3] = smb2_close_send(tree, &cl);
req[4] = smb2_close_send(tree, &cl);
+ tree->session->smbXcli = saved_session3;
+
status = smb2_create_recv(req[0], tree, &cr);
CHECK_STATUS(status, NT_STATUS_OK);
status = smb2_close_recv(req[1], &cl);
struct smb2_close cl;
bool ret = true;
struct smb2_request *req[5];
+ struct smbXcli_session *saved_session = tree->session->smbXcli;
+ struct smbXcli_session *saved_session2;
+ struct smbXcli_session *saved_session3;
+
+ struct smb2_session *session2;
+ struct smb2_tree *tree2;
+
+ if (!torture_smb2_session_setup(tctx, tree->session->transport,
+ 0, /* previous_session_id */
+ tctx, &session2))
+ {
+ torture_warning(tctx, "session setup failed.\n");
+ ret = false;
+ goto done;
+ }
+ saved_session2 = session2->smbXcli;
+
+ if (!torture_smb2_tree_connect(tctx, session2, tctx, &tree2)) {
+ torture_warning(tctx, "tree connect failed.\n");
+ ret = false;
+ goto done;
+ }
smb2_transport_credits_ask_num(tree->session->transport, 5);
cr.in.fname = fname;
smb2_transport_compound_start(tree->session->transport, 5);
+ tree->session->transport->compound.session = session2->smbXcli;
req[0] = smb2_create_send(tree, &cr);
ZERO_STRUCT(cl);
cl.in.file.handle = hd;
+
+ //tree->session->smbXcli = smbXcli_session_create(tree->session,
+ //tree->session->transport->conn);
+ //smb2cli_session_set_id_and_flags(tree->session->smbXcli, 12345678, 0);
+ //saved_session3 = tree->session->smbXcli;
+
req[1] = smb2_close_send(tree, &cl);
req[2] = smb2_close_send(tree, &cl);
req[3] = smb2_close_send(tree, &cl);