[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Fri May 11 18:51:04 MDT 2012


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 <metze at samba.org>
Date:   Fri May 11 17:45:16 2012 +0200

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

commit 8963930974174598710d2cc4a8609a856199dfea
Author: Stefan Metzmacher <metze at 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 <metze at 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 <metze at 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 <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit c7a129262857ede4d4985a1c368b7066811ed2c3
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 50d88c96bc03206b59a882669ab13f763945d41f
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 5f4a009f4fe366ed13c1c681595ae95554643768
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 473363a8078fca8ba7dbbdf310d984167cf92bf4
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 87d890fdd92195acca3e099c3f7b60aea91ac04e
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit f6db3d7bef750d48079ff56535f48c9923e5f4c8
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 14473f37f5a3cd4749f5c4f937fef37cc5ea8c47
Author: Luk Claes <luk at 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 <luk at debian.org>
    Signed-off-by: Stefan Metzmacher <metze at 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


More information about the samba-cvs mailing list