[SCM] Samba Shared Repository - branch master updated

Richard Sharpe sharpe at samba.org
Wed Jan 30 19:54:02 MST 2013


The branch, master has been updated
       via  48d954b Fix the compound tests to correctly pass against Windows when run with --signing=required.
       via  1624d83 Add new function smbXcli_session_copy(), to be used when creating compound SMB2 requests.
      from  7b0b1d6 smbd: Fix a typo

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


- Log -----------------------------------------------------------------
commit 48d954b90e6aa14721d236180df959a038416672
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Jan 28 16:52:11 2013 -0800

    Fix the compound tests to correctly pass against Windows when run with --signing=required.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Richard Sharpe <realrichardsharpe at gmail.org>
    
    Autobuild-User(master): Richard Sharpe <sharpe at samba.org>
    Autobuild-Date(master): Thu Jan 31 03:53:55 CET 2013 on sn-devel-104

commit 1624d83fdeb675ee4032f5d3cabcf86d5b05a3cb
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Jan 28 16:51:25 2013 -0800

    Add new function smbXcli_session_copy(), to be used when creating compound SMB2 requests.
    
    Copies the signing state needed to make client compound requests work
    on signed connections.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Richard Sharpe <realrichardsharpe at gmail.com>

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

Summary of changes:
 libcli/smb/smbXcli_base.c       |   27 +++++++++++++++++++++++++++
 libcli/smb/smbXcli_base.h       |    2 ++
 source4/torture/smb2/compound.c |   12 ++++++------
 3 files changed, 35 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index c547515..421e884 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -4482,6 +4482,33 @@ struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx,
 	return session;
 }
 
+struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx,
+						struct smbXcli_session *src)
+{
+	struct smbXcli_session *session;
+
+	session = talloc_zero(mem_ctx, struct smbXcli_session);
+	if (session == NULL) {
+		return NULL;
+	}
+	session->smb2 = talloc_zero(session, struct smb2cli_session);
+	if (session->smb2 == NULL) {
+		talloc_free(session);
+		return NULL;
+	}
+
+	session->conn = src->conn;
+	*session->smb2 = *src->smb2;
+	session->smb2_channel = src->smb2_channel;
+	session->disconnect_expired = src->disconnect_expired;
+
+	DLIST_ADD_END(src->conn->sessions, session, struct smbXcli_session *);
+	talloc_set_destructor(session, smbXcli_session_destructor);
+
+	return session;
+}
+
+
 NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session,
 					 TALLOC_CTX *mem_ctx,
 					 DATA_BLOB *key)
diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h
index b720bc6..f7b60d3 100644
--- a/libcli/smb/smbXcli_base.h
+++ b/libcli/smb/smbXcli_base.h
@@ -260,6 +260,8 @@ NTSTATUS smbXcli_negprot(struct smbXcli_conn *conn,
 
 struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx,
 					       struct smbXcli_conn *conn);
+struct smbXcli_session *smbXcli_session_copy(TALLOC_CTX *mem_ctx,
+					       struct smbXcli_session *src);
 NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session,
 					 TALLOC_CTX *mem_ctx,
 					 DATA_BLOB *key);
diff --git a/source4/torture/smb2/compound.c b/source4/torture/smb2/compound.c
index e75f682..4a47e14 100644
--- a/source4/torture/smb2/compound.c
+++ b/source4/torture/smb2/compound.c
@@ -92,8 +92,8 @@ static bool test_compound_related1(struct torture_context *tctx,
 				0, /* capabilities */
 				0 /* maximal_access */);
 
-	tree->session->smbXcli = smbXcli_session_create(tree->session,
-							tree->session->transport->conn);
+	tree->session->smbXcli = smbXcli_session_copy(tree->session,
+							tree->session->smbXcli);
 	smb2cli_session_set_id_and_flags(tree->session->smbXcli, UINT64_MAX, 0);
 
 	req[1] = smb2_close_send(tree, &cl);
@@ -171,8 +171,8 @@ static bool test_compound_related2(struct torture_context *tctx,
 				0, /* capabilities */
 				0 /* maximal_access */);
 
-	tree->session->smbXcli = smbXcli_session_create(tree->session,
-							tree->session->transport->conn);
+	tree->session->smbXcli = smbXcli_session_copy(tree->session,
+							tree->session->smbXcli);
 	smb2cli_session_set_id_and_flags(tree->session->smbXcli, UINT64_MAX, 0);
 
 	req[1] = smb2_close_send(tree, &cl);
@@ -459,8 +459,8 @@ static bool test_compound_invalid2(struct torture_context *tctx,
 				0, /* capabilities */
 				0 /* maximal_access */);
 
-	tree->session->smbXcli = smbXcli_session_create(tree->session,
-							tree->session->transport->conn);
+	tree->session->smbXcli = smbXcli_session_copy(tree->session,
+							tree->session->smbXcli);
 	smb2cli_session_set_id_and_flags(tree->session->smbXcli, UINT64_MAX, 0);
 
 	req[1] = smb2_close_send(tree, &cl);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list