s4:libcli/smb2: setup a smbXcli_tcon for each smb2_tree
authorStefan Metzmacher <metze@samba.org>
Mon, 23 Jul 2012 20:11:19 +0000 (22:11 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 24 Jul 2012 20:20:06 +0000 (22:20 +0200)
metze

source4/libcli/smb2/connect.c
source4/libcli/smb2/smb2.h
source4/libcli/smb2/tcon.c
source4/torture/smb2/notify.c
source4/torture/smb2/util.c

index 783d628f59c853b978bcbd6be31ecd569df7acdc..41f2d4bfa937a00fe094ae502894a86ae97ca0cd 100644 (file)
@@ -244,6 +244,13 @@ static void smb2_connect_tcon_done(struct smb2_request *smb2req)
        state->tree->tid = state->tcon.out.tid;
        state->tree->capabilities = state->tcon.out.capabilities;
 
+       smb2cli_tcon_set_values(state->tree->smbXcli,
+                               state->tcon.out.tid,
+                               state->tcon.out.share_type,
+                               state->tcon.out.flags,
+                               state->tcon.out.capabilities,
+                               state->tcon.out.access_mask);
+
        tevent_req_done(req);
 }
 
index c4dc0001a00e289fbdcf4ebfea12cdccd9e2e318..569028e63c91af20d0ee4342a57c60571c9b9503 100644 (file)
@@ -108,6 +108,7 @@ struct smb2_tree {
        struct smb2_session *session;
        uint32_t tid;
        uint32_t capabilities;
+       struct smbXcli_tcon *smbXcli;
 };
 
 /*
index 3a0f2460222258f46713729991ea5b02a772c3bd..b13b5c1c51c3f235b31b673d7996bbb768fb1667 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "libcli/smb2/smb2.h"
 #include "libcli/smb2/smb2_calls.h"
+#include "../libcli/smb/smbXcli_base.h"
 
 /*
   initialise a smb2_session structure
@@ -40,6 +41,13 @@ struct smb2_tree *smb2_tree_init(struct smb2_session *session,
        } else {
                tree->session = talloc_reference(tree, session);
        }
+
+       tree->smbXcli = smbXcli_tcon_create(tree);
+       if (tree->smbXcli == NULL) {
+               talloc_free(tree);
+               return NULL;
+       }
+
        return tree;
 }
 
index 7a4e5622d250e02fa6caa5e17c813b22851a29e7..c374ae781e7f5cd89621cf72f3f4b27f81202366 100644 (file)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "libcli/smb2/smb2.h"
 #include "libcli/smb2/smb2_calls.h"
+#include "../libcli/smb/smbXcli_base.h"
 
 #include "torture/torture.h"
 #include "torture/smb2/proto.h"
@@ -1820,6 +1821,15 @@ static struct smb2_tree *secondary_tcon(struct smb2_tree *tree,
        }
 
        tree1->tid = tcon.smb2.out.tid;
+       tree1->capabilities = tcon.smb2.out.capabilities;
+
+       smb2cli_tcon_set_values(tree1->smbXcli,
+                               tcon.smb2.out.tid,
+                               tcon.smb2.out.share_type,
+                               tcon.smb2.out.flags,
+                               tcon.smb2.out.capabilities,
+                               tcon.smb2.out.access_mask);
+
        torture_comment(tctx,"tid1=%d tid2=%d\n", tree->tid, tree1->tid);
 
        return tree1;
index e966b9cbe4ed89eeed3eb2fd094fab96d33a2dbd..0e5f1e1f0744a6a680b46764956c46e2bbcf7122 100644 (file)
@@ -23,6 +23,7 @@
 #include "libcli/security/security_descriptor.h"
 #include "libcli/smb2/smb2.h"
 #include "libcli/smb2/smb2_calls.h"
+#include "../libcli/smb/smbXcli_base.h"
 #include "lib/cmdline/popt_common.h"
 #include "system/time.h"
 #include "librpc/gen_ndr/ndr_security.h"
@@ -297,6 +298,13 @@ bool torture_smb2_tree_connect(struct torture_context *tctx,
        tree->tid = tcon.out.tid;
        tree->capabilities = tcon.out.capabilities;
 
+       smb2cli_tcon_set_values(tree->smbXcli,
+                               tcon.out.tid,
+                               tcon.out.share_type,
+                               tcon.out.flags,
+                               tcon.out.capabilities,
+                               tcon.out.access_mask);
+
        *_tree = tree;
 
        return true;