The branch, master has been updated
       via  212e805 s3:smb2_ioctl: implement FSCTL_VALIDATE_NEGOTIATE_INFO
       via  8963930 s3:smb2_ioctl: implement FSCTL_VALIDATE_NEGOTIATE_INFO_224
       via  b3235d4 s3:smbd: introduce struct smbXsrv_connection
       via  c8a3c0e s3:smb2_negprot: setup the protocol at the end of the 
negprot with a real dialect
       via  c140c5e s3/libsmb: Generalise cli_state in smb2 logoff calls
       via  c7a1292 s3/libsmb: Generalise cli_state in smb2 write calls
       via  50d88c9 s3/libsmb: Generalise cli_state in smb2 query_directory 
calls
       via  5f4a009 s3/libsmb: Generalise cli_state in smb2 ioctl calls
       via  473363a s3/libsmb: Generalise cli_state in smb2 flush calls
       via  87d890f s3/libsmb: Generalise cli_state in smb2 create calls
       via  f6db3d7 s3/libsmb: Generalise cli_state in smb2 close calls
       via  14473f3 s3-libsmb: Generalise cli_state in smb2 read calls
      from  0048dd9 smbconf: remove python shebang from wscript_build

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 212e805507c8364c13c34804bd52c6f3cc38be27
Author: Stefan Metzmacher <me...@samba.org>
Date:   Fri May 11 17:45:16 2012 +0200

    s3:smb2_ioctl: implement FSCTL_VALIDATE_NEGOTIATE_INFO
    
    metze
    
    Autobuild-User: Stefan Metzmacher <me...@samba.org>
    Autobuild-Date: Sat May 12 02:50:42 CEST 2012 on sn-devel-104

commit 8963930974174598710d2cc4a8609a856199dfea
Author: Stefan Metzmacher <me...@samba.org>
Date:   Fri May 11 17:45:16 2012 +0200

    s3:smb2_ioctl: implement FSCTL_VALIDATE_NEGOTIATE_INFO_224
    
    metze

commit b3235d483da924a41ca9cecf72e1c62bab7fedd5
Author: Stefan Metzmacher <me...@samba.org>
Date:   Thu Dec 15 14:45:56 2011 +0100

    s3:smbd: introduce struct smbXsrv_connection
    
    This will represent a transport connection for SMB 1 or 2
    in the server. smbd_server_connection will slowly be moved
    to the SMB_VFS layer to satisfy the existing modules,
    but it will hopefully be protocol independend in future.
    
    metze

commit c8a3c0e0f793c622e071953b25a70a3fd8a0da65
Author: Stefan Metzmacher <me...@samba.org>
Date:   Fri May 11 15:19:20 2012 +0200

    s3:smb2_negprot: setup the protocol at the end of the negprot with a real 
dialect
    
    metze

commit c140c5e4590ab49c0bd8ccce791450b0dbcc74aa
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:39:11 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 logoff calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit c7a129262857ede4d4985a1c368b7066811ed2c3
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:40:56 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 write calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 50d88c96bc03206b59a882669ab13f763945d41f
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:37:43 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 query_directory calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 5f4a009f4fe366ed13c1c681595ae95554643768
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:36:47 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 ioctl calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 473363a8078fca8ba7dbbdf310d984167cf92bf4
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:35:50 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 flush calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 87d890fdd92195acca3e099c3f7b60aea91ac04e
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:34:40 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 create calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit f6db3d7bef750d48079ff56535f48c9923e5f4c8
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:32:49 2012 +0200

    s3/libsmb: Generalise cli_state in smb2 close calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 14473f37f5a3cd4749f5c4f937fef37cc5ea8c47
Author: Luk Claes <l...@debian.org>
Date:   Thu May 10 18:30:25 2012 +0200

    s3-libsmb: Generalise cli_state in smb2 read calls
    
    Signed-off-by: Luk Claes <l...@debian.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/libsmb/cli_np_tstream.c          |   57 ++++++--
 source3/libsmb/smb2cli.h                 |   82 +++++++++---
 source3/libsmb/smb2cli_close.c           |   29 +++--
 source3/libsmb/smb2cli_create.c          |   25 +++--
 source3/libsmb/smb2cli_flush.c           |   26 +++--
 source3/libsmb/smb2cli_ioctl.c           |   25 +++--
 source3/libsmb/smb2cli_query_directory.c |   25 +++--
 source3/libsmb/smb2cli_read.c            |   26 +++--
 source3/libsmb/smb2cli_session.c         |   23 ++--
 source3/libsmb/smb2cli_write.c           |   25 +++--
 source3/smbd/globals.h                   |   37 +++++
 source3/smbd/negprot.c                   |   11 +-
 source3/smbd/process.c                   |   25 ++++
 source3/smbd/smb2_ioctl.c                |  159 ++++++++++++++++++++++
 source3/smbd/smb2_negprot.c              |   69 +++++++++-
 source3/torture/test_smb2.c              |  213 +++++++++++++++++++-----------
 16 files changed, 659 insertions(+), 198 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/cli_np_tstream.c b/source3/libsmb/cli_np_tstream.c
index 658f308..53e0c41 100644
--- a/source3/libsmb/cli_np_tstream.c
+++ b/source3/libsmb/cli_np_tstream.c
@@ -95,7 +95,10 @@ static int tstream_cli_np_destructor(struct tstream_cli_np 
*cli_nps)
        if (cli_nps->is_smb1) {
                status = cli_close(cli_nps->cli, cli_nps->fnum);
        } else {
-               status = smb2cli_close(cli_nps->cli, 0,
+               status = smb2cli_close(cli_nps->cli->conn,
+                                      cli_nps->cli->timeout,
+                                      cli_nps->cli->smb2.session,
+                                      cli_nps->cli->smb2.tid, 0,
                                       cli_nps->fid_persistent,
                                       cli_nps->fid_volatile);
        }
@@ -157,7 +160,9 @@ struct tevent_req *tstream_cli_np_open_send(TALLOC_CTX 
*mem_ctx,
                                           0,
                                           0);
        } else {
-               subreq = smb2cli_create_send(state, ev, cli,
+               subreq = smb2cli_create_send(state, ev, cli->conn,
+                                            cli->timeout, cli->smb2.session,
+                                            cli->smb2.tid,
                                             npipe,
                                             SMB2_OPLOCK_LEVEL_NONE,
                                             SMB2_IMPERSONATION_IMPERSONATION,
@@ -468,14 +473,18 @@ static void tstream_cli_np_writev_write_next(struct 
tevent_req *req)
                                             0, /* offset */
                                             cli_nps->write.ofs); /* size */
        } else {
-               subreq = smb2cli_write_send(state, state->ev, cli_nps->cli,
-                                            cli_nps->write.ofs, /* length */
-                                            0, /* offset */
-                                            cli_nps->fid_persistent,
-                                            cli_nps->fid_volatile,
-                                            0, /* remaining_bytes */
-                                            0, /* flags */
-                                            cli_nps->write.buf);
+               subreq = smb2cli_write_send(state, state->ev,
+                                           cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
+                                           cli_nps->write.ofs, /* length */
+                                           0, /* offset */
+                                           cli_nps->fid_persistent,
+                                           cli_nps->fid_volatile,
+                                           0, /* remaining_bytes */
+                                           0, /* flags */
+                                           cli_nps->write.buf);
        }
        if (tevent_req_nomem(subreq, req)) {
                return;
@@ -548,7 +557,11 @@ static void tstream_cli_np_writev_disconnect_now(struct 
tevent_req *req,
                subreq = cli_close_send(state, state->ev, cli_nps->cli,
                                        cli_nps->fnum);
        } else {
-               subreq = smb2cli_close_send(state, state->ev, cli_nps->cli,
+               subreq = smb2cli_close_send(state, state->ev,
+                                           cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
                                            0, /* flags */
                                            cli_nps->fid_persistent,
                                            cli_nps->fid_volatile);
@@ -742,7 +755,11 @@ static void tstream_cli_np_readv_read_next(struct 
tevent_req *req)
                                            0, /* offset */
                                            TSTREAM_CLI_NP_MAX_BUF_SIZE);
        } else {
-               subreq = smb2cli_read_send(state, state->ev, cli_nps->cli,
+               subreq = smb2cli_read_send(state, state->ev,
+                                          cli_nps->cli->conn,
+                                          cli_nps->cli->timeout,
+                                          cli_nps->cli->smb2.session,
+                                          cli_nps->cli->smb2.tid,
                                           TSTREAM_CLI_NP_MAX_BUF_SIZE, /* 
length */
                                           0, /* offset */
                                           cli_nps->fid_persistent,
@@ -795,7 +812,10 @@ static void tstream_cli_np_readv_trans_start(struct 
tevent_req *req)
                                                  cli_nps->write.ofs);
 
                subreq = smb2cli_ioctl_send(state, state->ev,
-                                           cli_nps->cli,
+                                           cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
                                            cli_nps->fid_persistent,
                                            cli_nps->fid_volatile,
                                            FSCTL_NAMED_PIPE_READ_WRITE,
@@ -999,7 +1019,11 @@ static void tstream_cli_np_readv_disconnect_now(struct 
tevent_req *req,
                subreq = cli_close_send(state, state->ev, cli_nps->cli,
                                        cli_nps->fnum);
        } else {
-               subreq = smb2cli_close_send(state, state->ev, cli_nps->cli,
+               subreq = smb2cli_close_send(state, state->ev,
+                                           cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
                                            0, /* flags */
                                            cli_nps->fid_persistent,
                                            cli_nps->fid_volatile);
@@ -1132,7 +1156,10 @@ static struct tevent_req 
*tstream_cli_np_disconnect_send(TALLOC_CTX *mem_ctx,
                subreq = cli_close_send(state, ev, cli_nps->cli,
                                        cli_nps->fnum);
        } else {
-               subreq = smb2cli_close_send(state, ev, cli_nps->cli,
+               subreq = smb2cli_close_send(state, ev, cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
                                            0, /* flags */
                                            cli_nps->fid_persistent,
                                            cli_nps->fid_volatile);
diff --git a/source3/libsmb/smb2cli.h b/source3/libsmb/smb2cli.h
index 727481a..bd6b131 100644
--- a/source3/libsmb/smb2cli.h
+++ b/source3/libsmb/smb2cli.h
@@ -26,9 +26,13 @@ struct cli_state;
 
 struct tevent_req *smb2cli_logoff_send(TALLOC_CTX *mem_ctx,
                                       struct tevent_context *ev,
-                                      struct cli_state *cli);
+                                      struct smbXcli_conn *conn,
+                                      uint32_t timeout_msec,
+                                      struct smbXcli_session *session);
 NTSTATUS smb2cli_logoff_recv(struct tevent_req *req);
-NTSTATUS smb2cli_logoff(struct cli_state *cli);
+NTSTATUS smb2cli_logoff(struct smbXcli_conn *conn,
+                       uint32_t timeout_msec,
+                       struct smbXcli_session *session);
 
 struct tevent_req *smb2cli_tcon_send(TALLOC_CTX *mem_ctx,
                                     struct tevent_context *ev,
@@ -46,7 +50,10 @@ NTSTATUS smb2cli_tdis(struct cli_state *cli);
 struct tevent_req *smb2cli_create_send(
        TALLOC_CTX *mem_ctx,
        struct tevent_context *ev,
-       struct cli_state *cli,
+       struct smbXcli_conn *conn,
+       uint32_t timeout_msec,
+       struct smbXcli_session *session,
+       uint32_t tcon_id,
        const char *filename,
        uint8_t  oplock_level,          /* SMB2_OPLOCK_LEVEL_* */
        uint32_t impersonation_level,   /* SMB2_IMPERSONATION_* */
@@ -59,7 +66,10 @@ struct tevent_req *smb2cli_create_send(
 NTSTATUS smb2cli_create_recv(struct tevent_req *req,
                             uint64_t *fid_persistent,
                             uint64_t *fid_volatile);
-NTSTATUS smb2cli_create(struct cli_state *cli,
+NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
+                       uint32_t timeout_msec,
+                       struct smbXcli_session *session,
+                       uint32_t tcon_id,
                        const char *filename,
                        uint8_t  oplock_level,       /* SMB2_OPLOCK_LEVEL_* */
                        uint32_t impersonation_level, /* SMB2_IMPERSONATION_* */
@@ -74,27 +84,44 @@ NTSTATUS smb2cli_create(struct cli_state *cli,
 
 struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
-                                     struct cli_state *cli,
+                                     struct smbXcli_conn *conn,
+                                     uint32_t timeout_msec,
+                                     struct smbXcli_session *session,
+                                     uint32_t tcon_id,
                                      uint16_t flags,
                                      uint64_t fid_persistent,
                                      uint64_t fid_volatile);
 NTSTATUS smb2cli_close_recv(struct tevent_req *req);
-NTSTATUS smb2cli_close(struct cli_state *cli, uint16_t flags,
-                       uint64_t fid_persistent, uint64_t fid_volatile);
+NTSTATUS smb2cli_close(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
+                      uint16_t flags,
+                      uint64_t fid_persistent,
+                      uint64_t fid_volatile);
 
 struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
-                                     struct cli_state *cli,
+                                     struct smbXcli_conn *conn,
+                                     uint32_t timeout_msec,
+                                     struct smbXcli_session *session,
+                                     uint32_t tcon_id,
                                      uint64_t fid_persistent,
                                      uint64_t fid_volatile);
 NTSTATUS smb2cli_flush_recv(struct tevent_req *req);
-NTSTATUS smb2cli_flush(struct cli_state *cli,
+NTSTATUS smb2cli_flush(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint64_t fid_persistent,
                       uint64_t fid_volatile);
 
 struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
                                     struct tevent_context *ev,
-                                    struct cli_state *cli,
+                                    struct smbXcli_conn *conn,
+                                    uint32_t timeout_msec,
+                                    struct smbXcli_session *session,
+                                    uint32_t tcon_id,
                                     uint32_t length,
                                     uint64_t offset,
                                     uint64_t fid_persistent,
@@ -103,7 +130,10 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
                                     uint64_t remaining_bytes);
 NTSTATUS smb2cli_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
                           uint8_t **data, uint32_t *data_length);
-NTSTATUS smb2cli_read(struct cli_state *cli,
+NTSTATUS smb2cli_read(struct smbXcli_conn *conn,
+                     uint32_t timeout_msec,
+                     struct smbXcli_session *session,
+                     uint32_t tcon_id,
                      uint32_t length,
                      uint64_t offset,
                      uint64_t fid_persistent,
@@ -116,7 +146,10 @@ NTSTATUS smb2cli_read(struct cli_state *cli,
 
 struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
-                                     struct cli_state *cli,
+                                     struct smbXcli_conn *conn,
+                                     uint32_t timeout_msec,
+                                     struct smbXcli_session *session,
+                                     uint32_t tcon_id,
                                      uint32_t length,
                                      uint64_t offset,
                                      uint64_t fid_persistent,
@@ -125,7 +158,10 @@ struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx,
                                      uint32_t flags,
                                      const uint8_t *data);
 NTSTATUS smb2cli_write_recv(struct tevent_req *req);
-NTSTATUS smb2cli_write(struct cli_state *cli,
+NTSTATUS smb2cli_write(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint32_t length,
                       uint64_t offset,
                       uint64_t fid_persistent,
@@ -136,7 +172,10 @@ NTSTATUS smb2cli_write(struct cli_state *cli,
 
 struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx,
                                                struct tevent_context *ev,
-                                               struct cli_state *cli,
+                                               struct smbXcli_conn *conn,
+                                               uint32_t timeout_msec,
+                                               struct smbXcli_session *session,
+                                               uint32_t tcon_id,
                                                uint8_t level,
                                                uint8_t flags,
                                                uint32_t file_index,
@@ -148,7 +187,10 @@ NTSTATUS smb2cli_query_directory_recv(struct tevent_req 
*req,
                                      TALLOC_CTX *mem_ctx,
                                      uint8_t **data,
                                      uint32_t *data_length);
-NTSTATUS smb2cli_query_directory(struct cli_state *cli,
+NTSTATUS smb2cli_query_directory(struct smbXcli_conn *conn,
+                                uint32_t timeout_msec,
+                                struct smbXcli_session *session,
+                                uint32_t tcon_id,
                                 uint8_t level,
                                 uint8_t flags,
                                 uint32_t file_index,
@@ -162,7 +204,10 @@ NTSTATUS smb2cli_query_directory(struct cli_state *cli,
 
 struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
-                                     struct cli_state *cli,
+                                     struct smbXcli_conn *conn,
+                                     uint32_t timeout_msec,
+                                     struct smbXcli_session *session,
+                                     uint32_t tcon_id,
                                      uint64_t in_fid_persistent,
                                      uint64_t in_fid_volatile,
                                      uint32_t in_ctl_code,
@@ -175,7 +220,10 @@ NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req,
                            TALLOC_CTX *mem_ctx,
                            DATA_BLOB *out_input_buffer,
                            DATA_BLOB *out_output_buffer);
-NTSTATUS smb2cli_ioctl(struct cli_state *cli,
+NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint64_t in_fid_persistent,
                       uint64_t in_fid_volatile,
                       uint32_t in_ctl_code,
diff --git a/source3/libsmb/smb2cli_close.c b/source3/libsmb/smb2cli_close.c
index 246d904..5c69fee 100644
--- a/source3/libsmb/smb2cli_close.c
+++ b/source3/libsmb/smb2cli_close.c
@@ -33,7 +33,10 @@ static void smb2cli_close_done(struct tevent_req *subreq);
 
 struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
                                      struct tevent_context *ev,
-                                     struct cli_state *cli,
+                                     struct smbXcli_conn *conn,
+                                     uint32_t timeout_msec,
+                                     struct smbXcli_session *session,
+                                     uint32_t tcon_id,
                                      uint16_t flags,
                                      uint64_t fid_persistent,
                                      uint64_t fid_volatile)
@@ -53,12 +56,12 @@ struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
        SBVAL(fixed, 8, fid_persistent);
        SBVAL(fixed, 16, fid_volatile);
 
-       subreq = smb2cli_req_send(state, ev, cli->conn, SMB2_OP_CLOSE,
+       subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CLOSE,
                                  0, 0, /* flags */
-                                 cli->timeout,
-                                 cli->smb2.pid,
-                                 cli->smb2.tid,
-                                 cli->smb2.session,
+                                 timeout_msec,
+                                 0xFEFF, /* pid */
+                                 tcon_id,
+                                 session,
                                  state->fixed, sizeof(state->fixed),
                                  NULL, 0);
        if (tevent_req_nomem(subreq, req)) {
@@ -94,15 +97,20 @@ NTSTATUS smb2cli_close_recv(struct tevent_req *req)
        return tevent_req_simple_recv_ntstatus(req);
 }
 
-NTSTATUS smb2cli_close(struct cli_state *cli, uint16_t flags,
-                      uint64_t fid_persistent, uint64_t fid_volatile)
+NTSTATUS smb2cli_close(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
+                      uint16_t flags,
+                      uint64_t fid_persistent,
+                      uint64_t fid_volatile)
 {
        TALLOC_CTX *frame = talloc_stackframe();
        struct event_context *ev;
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
 
-       if (cli_has_async_calls(cli)) {
+       if (smbXcli_conn_has_async_calls(conn)) {
                /*
                 * Can't use sync call while an async call is in flight
                 */
@@ -113,7 +121,8 @@ NTSTATUS smb2cli_close(struct cli_state *cli, uint16_t 
flags,
        if (ev == NULL) {
                goto fail;
        }
-       req = smb2cli_close_send(frame, ev, cli, flags,
+       req = smb2cli_close_send(frame, ev, conn, timeout_msec,
+                                session, tcon_id,  flags,
                                 fid_persistent, fid_volatile);
        if (req == NULL) {
                goto fail;
diff --git a/source3/libsmb/smb2cli_create.c b/source3/libsmb/smb2cli_create.c
index 4fa782f..f4fa45a 100644
--- a/source3/libsmb/smb2cli_create.c
+++ b/source3/libsmb/smb2cli_create.c
@@ -48,7 +48,10 @@ static void smb2cli_create_done(struct tevent_req *subreq);
 struct tevent_req *smb2cli_create_send(
        TALLOC_CTX *mem_ctx,
        struct tevent_context *ev,
-       struct cli_state *cli,
+       struct smbXcli_conn *conn,
+       uint32_t timeout_msec,
+       struct smbXcli_session *session,
+       uint32_t tcon_id,
        const char *filename,
        uint8_t  oplock_level,          /* SMB2_OPLOCK_LEVEL_* */
        uint32_t impersonation_level,   /* SMB2_IMPERSONATION_* */
@@ -136,12 +139,12 @@ struct tevent_req *smb2cli_create_send(
                data_blob_free(&blob);
        }
 
-       subreq = smb2cli_req_send(state, ev, cli->conn, SMB2_OP_CREATE,
+       subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CREATE,
                                  0, 0, /* flags */
-                                 cli->timeout,
-                                 cli->smb2.pid,
-                                 cli->smb2.tid,
-                                 cli->smb2.session,
+                                 timeout_msec,
+                                 0xFEFF, /* pid */
+                                 tcon_id,
+                                 session,
                                  state->fixed, sizeof(state->fixed),
                                  dyn, dyn_len);
        if (tevent_req_nomem(subreq, req)) {
@@ -227,7 +230,10 @@ NTSTATUS smb2cli_create_recv(struct tevent_req *req,
        return NT_STATUS_OK;
 }
 
-NTSTATUS smb2cli_create(struct cli_state *cli,
+NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
+                       uint32_t timeout_msec,
+                       struct smbXcli_session *session,
+                       uint32_t tcon_id,
                        const char *filename,
                        uint8_t  oplock_level,       /* SMB2_OPLOCK_LEVEL_* */
                        uint32_t impersonation_level, /* SMB2_IMPERSONATION_* */
@@ -245,7 +251,7 @@ NTSTATUS smb2cli_create(struct cli_state *cli,
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
 
-       if (cli_has_async_calls(cli)) {
+       if (smbXcli_conn_has_async_calls(conn)) {
                /*
                 * Can't use sync call while an async call is in flight
                 */
@@ -256,7 +262,8 @@ NTSTATUS smb2cli_create(struct cli_state *cli,
        if (ev == NULL) {
                goto fail;
        }
-       req = smb2cli_create_send(frame, ev, cli, filename, oplock_level,
+       req = smb2cli_create_send(frame, ev, conn, timeout_msec, session,
+                                 tcon_id, filename, oplock_level,
                                  impersonation_level, desired_access,
                                  file_attributes, share_access,
                                  create_disposition, create_options,
diff --git a/source3/libsmb/smb2cli_flush.c b/source3/libsmb/smb2cli_flush.c
index 738af24..3b20c44 100644
--- a/source3/libsmb/smb2cli_flush.c
+++ b/source3/libsmb/smb2cli_flush.c
@@ -33,7 +33,10 @@ static void smb2cli_flush_done(struct tevent_req *subreq);
 
 struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx,
                                       struct tevent_context *ev,
-                                      struct cli_state *cli,
+                                      struct smbXcli_conn *conn,
+                                      uint32_t timeout_msec,
+                                      struct smbXcli_session *session,
+                                      uint32_t tcon_id,
                                       uint64_t fid_persistent,
                                       uint64_t fid_volatile)
 {
@@ -51,12 +54,12 @@ struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx,
        SBVAL(fixed, 8, fid_persistent);
        SBVAL(fixed, 16, fid_volatile);
 
-       subreq = smb2cli_req_send(state, ev, cli->conn, SMB2_OP_FLUSH,
+       subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_FLUSH,
                                  0, 0, /* flags */
-                                 cli->timeout,
-                                 cli->smb2.pid,
-                                 cli->smb2.tid,
-                                 cli->smb2.session,
+                                 timeout_msec,
+                                 0xFEFF, /* pid */
+                                 tcon_id,
+                                 session,
                                  state->fixed, sizeof(state->fixed),
                                  NULL, 0);
        if (tevent_req_nomem(subreq, req)) {
@@ -92,7 +95,10 @@ NTSTATUS smb2cli_flush_recv(struct tevent_req *req)
        return tevent_req_simple_recv_ntstatus(req);
 }
 
-NTSTATUS smb2cli_flush(struct cli_state *cli,
+NTSTATUS smb2cli_flush(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint64_t fid_persistent,
                       uint64_t fid_volatile)
 {
@@ -101,7 +107,7 @@ NTSTATUS smb2cli_flush(struct cli_state *cli,
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
 
-       if (cli_has_async_calls(cli)) {
+       if (smbXcli_conn_has_async_calls(conn)) {
                /*
                 * Can't use sync call while an async call is in flight
                 */
@@ -112,8 +118,8 @@ NTSTATUS smb2cli_flush(struct cli_state *cli,
        if (ev == NULL) {
                goto fail;
        }
-       req = smb2cli_flush_send(frame, ev, cli,
-                                fid_persistent, fid_volatile);
+       req = smb2cli_flush_send(frame, ev, conn, timeout_msec, session,
+                                tcon_id, fid_persistent, fid_volatile);
        if (req == NULL) {
                goto fail;
        }
diff --git a/source3/libsmb/smb2cli_ioctl.c b/source3/libsmb/smb2cli_ioctl.c
index 58c348d..4b83355 100644
--- a/source3/libsmb/smb2cli_ioctl.c
+++ b/source3/libsmb/smb2cli_ioctl.c
@@ -40,7 +40,10 @@ static void smb2cli_ioctl_done(struct tevent_req *subreq);


-- 
Samba Shared Repository

Reply via email to