r12608: Remove some unused #include lines.
[abartlet/samba.git/.git] / source4 / libcli / smb2 / tcon.c
index 7b13750cfe614dae8ca0dfc384a415eb9032104e..3fc14075a5c533fa78ccc560cacf8608e6a582ff 100644 (file)
@@ -21,7 +21,6 @@
 */
 
 #include "includes.h"
-#include "libcli/raw/libcliraw.h"
 #include "libcli/smb2/smb2.h"
 #include "libcli/smb2/smb2_calls.h"
 
@@ -53,20 +52,15 @@ struct smb2_request *smb2_tree_connect_send(struct smb2_tree *tree,
 {
        struct smb2_request *req;
        NTSTATUS status;
-       DATA_BLOB path;
 
-       status = smb2_string_blob(tree, io->in.path, &path);
-       if (!NT_STATUS_IS_OK(status)) {
-               return NULL;
-       }
-       
        req = smb2_request_init(tree->session->transport, SMB2_OP_TCON, 
-                               0x8 + path.length);
+                               0x08, 1);
        if (req == NULL) return NULL;
 
        SBVAL(req->out.hdr,  SMB2_HDR_UID, tree->session->uid);
-       SIVAL(req->out.body, 0x00, io->in.unknown1);
-       status = smb2_push_ofs_blob(req, req->out.body+0x04, path);
+
+       SSVAL(req->out.body, 0x02, io->in.unknown1);
+       status = smb2_push_o16s16_string(&req->out, 0x04, io->in.path);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(req);
                return NULL;
@@ -88,22 +82,20 @@ NTSTATUS smb2_tree_connect_recv(struct smb2_request *req, struct smb2_tree_conne
                return smb2_request_destroy(req);
        }
 
-       if (req->in.body_size < 0x10) {
-               return NT_STATUS_BUFFER_TOO_SMALL;
-       }
+       SMB2_CHECK_PACKET_RECV(req, 0x10, False);
 
-       io->out.tid      = BVAL(req->in.hdr,  SMB2_HDR_TID);
+       io->out.tid      = IVAL(req->in.hdr,  SMB2_HDR_TID);
 
-       io->out.unknown1 = IVAL(req->in.body, 0x00);
-       io->out.unknown2 = IVAL(req->in.body, 0x04);
-       io->out.unknown3 = IVAL(req->in.body, 0x08);
-       io->out.unknown4 = IVAL(req->in.body, 0x0C);
+       io->out.unknown1    = SVAL(req->in.body, 0x02);
+       io->out.unknown2    = IVAL(req->in.body, 0x04);
+       io->out.unknown3    = IVAL(req->in.body, 0x08);
+       io->out.access_mask = IVAL(req->in.body, 0x0C);
        
        return smb2_request_destroy(req);
 }
 
 /*
-  sync session setup request
+  sync tree connect request
 */
 NTSTATUS smb2_tree_connect(struct smb2_tree *tree, struct smb2_tree_connect *io)
 {