smb3 encryption hacks
[metze/samba/wip.git] / source4 / torture / smb2 / compound.c
index 0eef3695bdbb12d8380641d24bb400e553157c73..eb2c545d3f5f9b4ae97b13de9d2c8766acb92f20 100644 (file)
@@ -50,6 +50,24 @@ static bool test_compound_related1(struct torture_context *tctx,
        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);
@@ -128,7 +146,27 @@ static bool test_compound_related2(struct torture_context *tctx,
        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);
@@ -177,12 +215,17 @@ static bool test_compound_related2(struct torture_context *tctx,
        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);
@@ -284,6 +327,28 @@ static bool test_compound_unrelated1(struct torture_context *tctx,
        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);
 
@@ -310,6 +375,7 @@ static bool test_compound_unrelated1(struct torture_context *tctx,
        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);
 
@@ -318,6 +384,12 @@ static bool test_compound_unrelated1(struct torture_context *tctx,
 
        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);