[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Tue Jul 24 16:11:02 MDT 2012


The branch, master has been updated
       via  79ccb96 s3:torture/test_smb2: make a copy of smbXcli_tcon
       via  20d43a1 libcli/smb: pass smbXcli_tcon to smb2cli_ioctl*()
       via  51af8b9 libcli/smb: pass smbXcli_tcon to smb2cli_query_directory*()
       via  370e714 libcli/smb: pass smbXcli_tcon to smb2cli_query_info*()
       via  6dc701c libcli/smb: pass smbXcli_tcon to smb2cli_set_info*()
       via  6612c83 libcli/smb: pass smbXcli_tcon to smb2cli_flush*()
       via  86a5ab7 libcli/smb: pass smbXcli_tcon to smb2cli_write*()
       via  697b82a libcli/smb: pass smbXcli_tcon to smb2cli_read*()
       via  74f9b52 libcli/smb: pass smbXcli_tcon to smb2cli_close*()
       via  32b3399 libcli/smb: pass smbXcli_tcon to smb2cli_create*()
       via  92efe1a s3:libsmb: setup a smbXcli_tcon for SMB2
       via  41538b1 s4:libcli/smb2: setup a smbXcli_tcon for each smb2_tree
      from  b9100a7 libcli/smb: pass down smbXcli_tcon to smb1cli_req_create/send() and smb1cli_trans*

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


- Log -----------------------------------------------------------------
commit 79ccb96cd35baffc848cd96b20553aa958dd69b0
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Jul 24 20:11:25 2012 +0200

    s3:torture/test_smb2: make a copy of smbXcli_tcon
    
    metze
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Wed Jul 25 00:10:47 CEST 2012 on sn-devel-104

commit 20d43a1d302ea4d890adaca9cee80ca0549eddc8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_ioctl*()
    
    metze

commit 51af8b9600630e2310f0dc2780a06f24b88f3cb5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_query_directory*()
    
    metze

commit 370e7140bb67f84b87e17e2e83076a94b430916e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_query_info*()
    
    metze

commit 6dc701c958557df6df3cbb7481025b56a4e7eef2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_set_info*()
    
    metze

commit 6612c831a3eb62da7766152e597168b9cec9b8fc
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_flush*()
    
    metze

commit 86a5ab731be6eb0fec7eb85a3ae4660bf8576c6d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_write*()
    
    metze

commit 697b82a61979b48de86d74d2bf5c498032ff49b1
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_read*()
    
    metze

commit 74f9b52e659265c7a6283550d226f0cec5e8fb18
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_close*()
    
    metze

commit 32b33999dbc5c73f5efd04e3ae0ab5a0b13c7cc2
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:32:49 2012 +0200

    libcli/smb: pass smbXcli_tcon to smb2cli_create*()
    
    metze

commit 92efe1a35ff007919e9c23a066a702be8cfd0a9f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:22:02 2012 +0200

    s3:libsmb: setup a smbXcli_tcon for SMB2
    
    metze

commit 41538b17c5420b1e8e45d3e2987c77bc79c14de5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Jul 23 22:11:19 2012 +0200

    s4:libcli/smb2: setup a smbXcli_tcon for each smb2_tree
    
    metze

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

Summary of changes:
 libcli/smb/smb2cli_close.c           |   11 ++-
 libcli/smb/smb2cli_create.c          |   14 ++-
 libcli/smb/smb2cli_flush.c           |   14 ++-
 libcli/smb/smb2cli_ioctl.c           |   11 ++-
 libcli/smb/smb2cli_query_directory.c |   12 ++-
 libcli/smb/smb2cli_query_info.c      |   11 ++-
 libcli/smb/smb2cli_read.c            |   11 ++-
 libcli/smb/smb2cli_set_info.c        |   11 ++-
 libcli/smb/smb2cli_write.c           |   14 ++-
 libcli/smb/smbXcli_base.h            |   52 +++++-----
 source3/include/client.h             |    1 +
 source3/libsmb/cli_np_tstream.c      |   17 ++--
 source3/libsmb/smb2cli_tcon.c        |   14 +++
 source3/torture/test_smb2.c          |  178 +++++++++++++++++++++-------------
 source4/libcli/smb2/connect.c        |    7 ++
 source4/libcli/smb2/smb2.h           |    1 +
 source4/libcli/smb2/tcon.c           |    8 ++
 source4/torture/smb2/notify.c        |   10 ++
 source4/torture/smb2/util.c          |    8 ++
 19 files changed, 273 insertions(+), 132 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/smb/smb2cli_close.c b/libcli/smb/smb2cli_close.c
index d4cba41..42ed65a 100644
--- a/libcli/smb/smb2cli_close.c
+++ b/libcli/smb/smb2cli_close.c
@@ -34,7 +34,7 @@ struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
 				      struct smbXcli_conn *conn,
 				      uint32_t timeout_msec,
 				      struct smbXcli_session *session,
-				      uint32_t tcon_id,
+				      struct smbXcli_tcon *tcon,
 				      uint16_t flags,
 				      uint64_t fid_persistent,
 				      uint64_t fid_volatile)
@@ -42,6 +42,7 @@ struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
 	struct tevent_req *req, *subreq;
 	struct smb2cli_close_state *state;
 	uint8_t *fixed;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_close_state);
@@ -54,6 +55,10 @@ struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
 	SBVAL(fixed, 8, fid_persistent);
 	SBVAL(fixed, 16, fid_volatile);
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CLOSE,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -98,7 +103,7 @@ NTSTATUS smb2cli_close_recv(struct tevent_req *req)
 NTSTATUS smb2cli_close(struct smbXcli_conn *conn,
 		       uint32_t timeout_msec,
 		       struct smbXcli_session *session,
-		       uint32_t tcon_id,
+		       struct smbXcli_tcon *tcon,
 		       uint16_t flags,
 		       uint64_t fid_persistent,
 		       uint64_t fid_volatile)
@@ -120,7 +125,7 @@ NTSTATUS smb2cli_close(struct smbXcli_conn *conn,
 		goto fail;
 	}
 	req = smb2cli_close_send(frame, ev, conn, timeout_msec,
-				 session, tcon_id,  flags,
+				 session, tcon, flags,
 				 fid_persistent, fid_volatile);
 	if (req == NULL) {
 		goto fail;
diff --git a/libcli/smb/smb2cli_create.c b/libcli/smb/smb2cli_create.c
index 29b0396..33af378 100644
--- a/libcli/smb/smb2cli_create.c
+++ b/libcli/smb/smb2cli_create.c
@@ -49,7 +49,7 @@ struct tevent_req *smb2cli_create_send(
 	struct smbXcli_conn *conn,
 	uint32_t timeout_msec,
 	struct smbXcli_session *session,
-	uint32_t tcon_id,
+	struct smbXcli_tcon *tcon,
 	const char *filename,
 	uint8_t  oplock_level,		/* SMB2_OPLOCK_LEVEL_* */
 	uint32_t impersonation_level,	/* SMB2_IMPERSONATION_* */
@@ -70,6 +70,7 @@ struct tevent_req *smb2cli_create_send(
 	size_t blobs_offset;
 	uint8_t *dyn;
 	size_t dyn_len;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_create_state);
@@ -137,6 +138,10 @@ struct tevent_req *smb2cli_create_send(
 		data_blob_free(&blob);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CREATE,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -231,7 +236,7 @@ NTSTATUS smb2cli_create_recv(struct tevent_req *req,
 NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
 			uint32_t timeout_msec,
 			struct smbXcli_session *session,
-			uint32_t tcon_id,
+			struct smbXcli_tcon *tcon,
 			const char *filename,
 			uint8_t  oplock_level,	     /* SMB2_OPLOCK_LEVEL_* */
 			uint32_t impersonation_level, /* SMB2_IMPERSONATION_* */
@@ -260,8 +265,9 @@ NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
 	if (ev == NULL) {
 		goto fail;
 	}
-	req = smb2cli_create_send(frame, ev, conn, timeout_msec, session,
-				  tcon_id, filename, oplock_level,
+	req = smb2cli_create_send(frame, ev, conn, timeout_msec,
+				  session, tcon,
+				  filename, oplock_level,
 				  impersonation_level, desired_access,
 				  file_attributes, share_access,
 				  create_disposition, create_options,
diff --git a/libcli/smb/smb2cli_flush.c b/libcli/smb/smb2cli_flush.c
index 64d47c2..ca7a0fe 100644
--- a/libcli/smb/smb2cli_flush.c
+++ b/libcli/smb/smb2cli_flush.c
@@ -34,13 +34,14 @@ struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx,
 				       struct smbXcli_conn *conn,
 				       uint32_t timeout_msec,
 				       struct smbXcli_session *session,
-				       uint32_t tcon_id,
+				       struct smbXcli_tcon *tcon,
 				       uint64_t fid_persistent,
 				       uint64_t fid_volatile)
 {
 	struct tevent_req *req, *subreq;
 	struct smb2cli_flush_state *state;
 	uint8_t *fixed;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_flush_state);
@@ -52,6 +53,10 @@ struct tevent_req *smb2cli_flush_send(TALLOC_CTX *mem_ctx,
 	SBVAL(fixed, 8, fid_persistent);
 	SBVAL(fixed, 16, fid_volatile);
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_FLUSH,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -96,7 +101,7 @@ NTSTATUS smb2cli_flush_recv(struct tevent_req *req)
 NTSTATUS smb2cli_flush(struct smbXcli_conn *conn,
 		       uint32_t timeout_msec,
 		       struct smbXcli_session *session,
-		       uint32_t tcon_id,
+		       struct smbXcli_tcon *tcon,
 		       uint64_t fid_persistent,
 		       uint64_t fid_volatile)
 {
@@ -116,8 +121,9 @@ NTSTATUS smb2cli_flush(struct smbXcli_conn *conn,
 	if (ev == NULL) {
 		goto fail;
 	}
-	req = smb2cli_flush_send(frame, ev, conn, timeout_msec, session,
-				 tcon_id, fid_persistent, fid_volatile);
+	req = smb2cli_flush_send(frame, ev, conn, timeout_msec,
+				 session, tcon,
+				 fid_persistent, fid_volatile);
 	if (req == NULL) {
 		goto fail;
 	}
diff --git a/libcli/smb/smb2cli_ioctl.c b/libcli/smb/smb2cli_ioctl.c
index 9836469..03296c6 100644
--- a/libcli/smb/smb2cli_ioctl.c
+++ b/libcli/smb/smb2cli_ioctl.c
@@ -41,7 +41,7 @@ struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
 				      struct smbXcli_conn *conn,
 				      uint32_t timeout_msec,
 				      struct smbXcli_session *session,
-				      uint32_t tcon_id,
+				      struct smbXcli_tcon *tcon,
 				      uint64_t in_fid_persistent,
 				      uint64_t in_fid_volatile,
 				      uint32_t in_ctl_code,
@@ -61,6 +61,7 @@ struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
 	uint32_t output_buffer_offset = 0;
 	uint32_t output_buffer_length = 0;
 	uint32_t pad_length = 0;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_ioctl_state);
@@ -133,6 +134,10 @@ struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
 		dyn_len = sizeof(state->dyn_pad);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_IOCTL,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -281,7 +286,7 @@ NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req,
 NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
 		       uint32_t timeout_msec,
 		       struct smbXcli_session *session,
-		       uint32_t tcon_id,
+		       struct smbXcli_tcon *tcon,
 		       uint64_t in_fid_persistent,
 		       uint64_t in_fid_volatile,
 		       uint32_t in_ctl_code,
@@ -311,7 +316,7 @@ NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
 		goto fail;
 	}
 	req = smb2cli_ioctl_send(frame, ev, conn, timeout_msec,
-				 session, tcon_id,
+				 session, tcon,
 				 in_fid_persistent,
 				 in_fid_volatile,
 				 in_ctl_code,
diff --git a/libcli/smb/smb2cli_query_directory.c b/libcli/smb/smb2cli_query_directory.c
index efc52d1..4ff93de 100644
--- a/libcli/smb/smb2cli_query_directory.c
+++ b/libcli/smb/smb2cli_query_directory.c
@@ -38,7 +38,7 @@ struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx,
 						struct smbXcli_conn *conn,
 						uint32_t timeout_msec,
 						struct smbXcli_session *session,
-						uint32_t tcon_id,
+						struct smbXcli_tcon *tcon,
 						uint8_t level,
 						uint8_t flags,
 						uint32_t file_index,
@@ -52,6 +52,7 @@ struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx,
 	uint8_t *fixed;
 	uint8_t *dyn;
 	size_t dyn_len;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_query_directory_state);
@@ -87,6 +88,10 @@ struct tevent_req *smb2cli_query_directory_send(TALLOC_CTX *mem_ctx,
 		dyn_len = sizeof(state->dyn_pad);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_FIND,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -162,7 +167,7 @@ NTSTATUS smb2cli_query_directory_recv(struct tevent_req *req,
 NTSTATUS smb2cli_query_directory(struct smbXcli_conn *conn,
 				 uint32_t timeout_msec,
 				 struct smbXcli_session *session,
-				 uint32_t tcon_id,
+				 struct smbXcli_tcon *tcon,
 				 uint8_t level,
 				 uint8_t flags,
 				 uint32_t file_index,
@@ -191,7 +196,8 @@ NTSTATUS smb2cli_query_directory(struct smbXcli_conn *conn,
 		goto fail;
 	}
 	req = smb2cli_query_directory_send(frame, ev, conn, timeout_msec,
-					   session, tcon_id, level, flags,
+					   session, tcon,
+					   level, flags,
 					   file_index, fid_persistent,
 					   fid_volatile, mask, outbuf_len);
 	if (req == NULL) {
diff --git a/libcli/smb/smb2cli_query_info.c b/libcli/smb/smb2cli_query_info.c
index 30766e4..b5d9e79 100644
--- a/libcli/smb/smb2cli_query_info.c
+++ b/libcli/smb/smb2cli_query_info.c
@@ -38,7 +38,7 @@ struct tevent_req *smb2cli_query_info_send(TALLOC_CTX *mem_ctx,
 					   struct smbXcli_conn *conn,
 					   uint32_t timeout_msec,
 					   struct smbXcli_session *session,
-					   uint32_t tcon_id,
+					   struct smbXcli_tcon *tcon,
 					   uint8_t in_info_type,
 					   uint8_t in_file_info_class,
 					   uint32_t in_max_output_length,
@@ -55,6 +55,7 @@ struct tevent_req *smb2cli_query_info_send(TALLOC_CTX *mem_ctx,
 	size_t dyn_len;
 	uint16_t input_buffer_offset = 0;
 	uint32_t input_buffer_length = 0;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_query_info_state);
@@ -90,6 +91,10 @@ struct tevent_req *smb2cli_query_info_send(TALLOC_CTX *mem_ctx,
 		dyn_len = sizeof(state->dyn_pad);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_GETINFO,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -198,7 +203,7 @@ NTSTATUS smb2cli_query_info_recv(struct tevent_req *req,
 NTSTATUS smb2cli_query_info(struct smbXcli_conn *conn,
 			    uint32_t timeout_msec,
 			    struct smbXcli_session *session,
-			    uint32_t tcon_id,
+			    struct smbXcli_tcon *tcon,
 			    uint8_t in_info_type,
 			    uint8_t in_file_info_class,
 			    uint32_t in_max_output_length,
@@ -228,7 +233,7 @@ NTSTATUS smb2cli_query_info(struct smbXcli_conn *conn,
 	}
 	req = smb2cli_query_info_send(frame, ev,
 				      conn, timeout_msec,
-				      session, tcon_id,
+				      session, tcon,
 				      in_info_type,
 				      in_file_info_class,
 				      in_max_output_length,
diff --git a/libcli/smb/smb2cli_read.c b/libcli/smb/smb2cli_read.c
index 29b9f37..5ff4b64 100644
--- a/libcli/smb/smb2cli_read.c
+++ b/libcli/smb/smb2cli_read.c
@@ -38,7 +38,7 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
 				     struct smbXcli_conn *conn,
 				     uint32_t timeout_msec,
 				     struct smbXcli_session *session,
-				     uint32_t tcon_id,
+				     struct smbXcli_tcon *tcon,
 				     uint32_t length,
 				     uint64_t offset,
 				     uint64_t fid_persistent,
@@ -49,6 +49,7 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
 	struct tevent_req *req, *subreq;
 	struct smb2cli_read_state *state;
 	uint8_t *fixed;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_read_state);
@@ -66,6 +67,10 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
 	SBVAL(fixed, 32, minimum_count);
 	SBVAL(fixed, 40, remaining_bytes);
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_READ,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -142,7 +147,7 @@ NTSTATUS smb2cli_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
 NTSTATUS smb2cli_read(struct smbXcli_conn *conn,
 		      uint32_t timeout_msec,
 		      struct smbXcli_session *session,
-		      uint32_t tcon_id,
+		      struct smbXcli_tcon *tcon,
 		      uint32_t length,
 		      uint64_t offset,
 		      uint64_t fid_persistent,
@@ -170,7 +175,7 @@ NTSTATUS smb2cli_read(struct smbXcli_conn *conn,
 		goto fail;
 	}
 	req = smb2cli_read_send(frame, ev,
-				conn, timeout_msec, session, tcon_id,
+				conn, timeout_msec, session, tcon,
 				length, offset,
 				fid_persistent, fid_volatile,
 				minimum_count, remaining_bytes);
diff --git a/libcli/smb/smb2cli_set_info.c b/libcli/smb/smb2cli_set_info.c
index 10da7b1..e33ba83 100644
--- a/libcli/smb/smb2cli_set_info.c
+++ b/libcli/smb/smb2cli_set_info.c
@@ -35,7 +35,7 @@ struct tevent_req *smb2cli_set_info_send(TALLOC_CTX *mem_ctx,
 					 struct smbXcli_conn *conn,
 					 uint32_t timeout_msec,
 					 struct smbXcli_session *session,
-					 uint32_t tcon_id,
+					 struct smbXcli_tcon *tcon,
 					 uint8_t in_info_type,
 					 uint8_t in_file_info_class,
 					 const DATA_BLOB *in_input_buffer,
@@ -50,6 +50,7 @@ struct tevent_req *smb2cli_set_info_send(TALLOC_CTX *mem_ctx,
 	size_t dyn_len;
 	uint16_t input_buffer_offset = 0;
 	uint32_t input_buffer_length = 0;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_set_info_state);
@@ -82,6 +83,10 @@ struct tevent_req *smb2cli_set_info_send(TALLOC_CTX *mem_ctx,
 		dyn_len = sizeof(state->dyn_pad);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_SETINFO,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -135,7 +140,7 @@ NTSTATUS smb2cli_set_info_recv(struct tevent_req *req)
 NTSTATUS smb2cli_set_info(struct smbXcli_conn *conn,
 			  uint32_t timeout_msec,
 			  struct smbXcli_session *session,
-			  uint32_t tcon_id,
+			  struct smbXcli_tcon *tcon,
 			  uint8_t in_info_type,
 			  uint8_t in_file_info_class,
 			  const DATA_BLOB *in_input_buffer,
@@ -161,7 +166,7 @@ NTSTATUS smb2cli_set_info(struct smbXcli_conn *conn,
 	}
 	req = smb2cli_set_info_send(frame, ev,
 				    conn, timeout_msec,
-				    session, tcon_id,
+				    session, tcon,
 				    in_info_type,
 				    in_file_info_class,
 				    in_input_buffer,
diff --git a/libcli/smb/smb2cli_write.c b/libcli/smb/smb2cli_write.c
index 2850cea..cd98e5e 100644
--- a/libcli/smb/smb2cli_write.c
+++ b/libcli/smb/smb2cli_write.c
@@ -35,7 +35,7 @@ struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx,
 				      struct smbXcli_conn *conn,
 				      uint32_t timeout_msec,
 				      struct smbXcli_session *session,
-				      uint32_t tcon_id,
+				      struct smbXcli_tcon *tcon,
 				      uint32_t length,
 				      uint64_t offset,
 				      uint64_t fid_persistent,
@@ -49,6 +49,7 @@ struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx,
 	uint8_t *fixed;
 	const uint8_t *dyn;
 	size_t dyn_len;
+	uint32_t tcon_id = 0;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct smb2cli_write_state);
@@ -75,6 +76,10 @@ struct tevent_req *smb2cli_write_send(TALLOC_CTX *mem_ctx,
 		dyn_len = sizeof(state->dyn_pad);
 	}
 
+	if (tcon) {
+		tcon_id = smb2cli_tcon_current_id(tcon);
+	}
+
 	subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_WRITE,
 				  0, 0, /* flags */
 				  timeout_msec,
@@ -119,7 +124,7 @@ NTSTATUS smb2cli_write_recv(struct tevent_req *req)
 NTSTATUS smb2cli_write(struct smbXcli_conn *conn,
 		       uint32_t timeout_msec,
 		       struct smbXcli_session *session,
-		       uint32_t tcon_id,
+		       struct smbXcli_tcon *tcon,
 		       uint32_t length,
 		       uint64_t offset,
 		       uint64_t fid_persistent,
@@ -144,8 +149,9 @@ NTSTATUS smb2cli_write(struct smbXcli_conn *conn,
 	if (ev == NULL) {
 		goto fail;
 	}
-	req = smb2cli_write_send(frame, ev, conn, timeout_msec, session,
-				 tcon_id, length, offset,
+	req = smb2cli_write_send(frame, ev, conn, timeout_msec,
+				 session, tcon,
+				 length, offset,
 				 fid_persistent, fid_volatile,
 				 remaining_bytes, flags, data);
 	if (req == NULL) {
diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h
index a105c82..60ef272 100644
--- a/libcli/smb/smbXcli_base.h
+++ b/libcli/smb/smbXcli_base.h
@@ -322,7 +322,7 @@ struct tevent_req *smb2cli_create_send(
 	struct smbXcli_conn *conn,
 	uint32_t timeout_msec,
 	struct smbXcli_session *session,
-	uint32_t tcon_id,
+	struct smbXcli_tcon *tcon,
 	const char *filename,
 	uint8_t  oplock_level,		/* SMB2_OPLOCK_LEVEL_* */
 	uint32_t impersonation_level,	/* SMB2_IMPERSONATION_* */
@@ -338,7 +338,7 @@ NTSTATUS smb2cli_create_recv(struct tevent_req *req,
 NTSTATUS smb2cli_create(struct smbXcli_conn *conn,
 			uint32_t timeout_msec,
 			struct smbXcli_session *session,
-			uint32_t tcon_id,
+			struct smbXcli_tcon *tcon,
 			const char *filename,
 			uint8_t  oplock_level,	     /* SMB2_OPLOCK_LEVEL_* */
 			uint32_t impersonation_level, /* SMB2_IMPERSONATION_* */
@@ -356,7 +356,7 @@ struct tevent_req *smb2cli_close_send(TALLOC_CTX *mem_ctx,
 				      struct smbXcli_conn *conn,
 				      uint32_t timeout_msec,
 				      struct smbXcli_session *session,
-				      uint32_t tcon_id,
+				      struct smbXcli_tcon *tcon,
 				      uint16_t flags,
 				      uint64_t fid_persistent,
 				      uint64_t fid_volatile);
@@ -364,7 +364,7 @@ NTSTATUS smb2cli_close_recv(struct tevent_req *req);
 NTSTATUS smb2cli_close(struct smbXcli_conn *conn,
 		       uint32_t timeout_msec,
 		       struct smbXcli_session *session,
-		       uint32_t tcon_id,
+		       struct smbXcli_tcon *tcon,
 		       uint16_t flags,
 		       uint64_t fid_persistent,
 		       uint64_t fid_volatile);
@@ -374,7 +374,7 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list