[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Thu Dec 22 09:48:03 MST 2011


The branch, master has been updated
       via  32317b0 s3:torture/test_smb2: also try PROTOCOL_SMB2_24
       via  d855e77 lib/param: add support for "SMB2_24" in smb.conf options
       via  460fc52 s3:smb2_negprot: add support for PROTOCOL_SMB2_24
       via  2bd2f38 libcli/smb: add PROTOCOL_SMB2_24 support
       via  5bc242f libcli/smb: add SMB2_DIALECT_REVISION_224
      from  e34989e s3-auth Restore shortcut for guest security token

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


- Log -----------------------------------------------------------------
commit 32317b0529b4322b0c080cc8916f095db0b82cf5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 22 13:14:21 2011 +0100

    s3:torture/test_smb2: also try PROTOCOL_SMB2_24
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Thu Dec 22 17:47:17 CET 2011 on sn-devel-104

commit d855e77c699cc8cc0c0ef552df5d88f39e277c8c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 22 13:12:24 2011 +0100

    lib/param: add support for "SMB2_24" in smb.conf options
    
    metze

commit 460fc521cfd15b81dfc1e1ede01043c13d9b2ee7
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 22 13:11:57 2011 +0100

    s3:smb2_negprot: add support for PROTOCOL_SMB2_24
    
    metze

commit 2bd2f3880e3ec1a241ae4cc2a961ec8c04fece29
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 22 13:08:44 2011 +0100

    libcli/smb: add PROTOCOL_SMB2_24 support
    
    metze

commit 5bc242f4a20893899c417ed24c18ef9a48759594
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Dec 22 13:07:48 2011 +0100

    libcli/smb: add SMB2_DIALECT_REVISION_224
    
    This is specified in the new [MS-SMB2] preview document.
    
    metze

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

Summary of changes:
 lib/param/param_enums.c     |    1 +
 libcli/smb/smb2_constants.h |    1 +
 libcli/smb/smbXcli_base.c   |    1 +
 libcli/smb/smb_constants.h  |    3 ++-
 source3/smbd/smb2_negprot.c |   15 +++++++++++++++
 source3/torture/test_smb2.c |   15 +++++++++------
 6 files changed, 29 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/param/param_enums.c b/lib/param/param_enums.c
index d30458f..6065208 100644
--- a/lib/param/param_enums.c
+++ b/lib/param/param_enums.c
@@ -29,6 +29,7 @@
 
 static const struct enum_list enum_protocol[] = {
 	{PROTOCOL_SMB2_02, "SMB2"}, /* for now keep PROTOCOL_SMB2_02 */
+	{PROTOCOL_SMB2_24, "SMB2_24"},
 	{PROTOCOL_SMB2_22, "SMB2_22"},
 	{PROTOCOL_SMB2_10, "SMB2_10"},
 	{PROTOCOL_SMB2_02, "SMB2_02"},
diff --git a/libcli/smb/smb2_constants.h b/libcli/smb/smb2_constants.h
index 947520f..6699dd7 100644
--- a/libcli/smb/smb2_constants.h
+++ b/libcli/smb/smb2_constants.h
@@ -77,6 +77,7 @@
 #define SMB2_DIALECT_REVISION_202       0x0202
 #define SMB2_DIALECT_REVISION_210       0x0210
 #define SMB2_DIALECT_REVISION_222       0x0222
+#define SMB2_DIALECT_REVISION_224       0x0224
 #define SMB2_DIALECT_REVISION_2FF       0x02FF
 
 /* SMB2 negotiate security_mode */
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index 6aa30ba..6a25470 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -3061,6 +3061,7 @@ static const struct {
 	{PROTOCOL_SMB2_02,	SMB2_DIALECT_REVISION_202},
 	{PROTOCOL_SMB2_10,	SMB2_DIALECT_REVISION_210},
 	{PROTOCOL_SMB2_22,	SMB2_DIALECT_REVISION_222},
+	{PROTOCOL_SMB2_24,	SMB2_DIALECT_REVISION_224},
 };
 
 struct smbXcli_negprot_state {
diff --git a/libcli/smb/smb_constants.h b/libcli/smb/smb_constants.h
index 7c4620a..9ee6f41 100644
--- a/libcli/smb/smb_constants.h
+++ b/libcli/smb/smb_constants.h
@@ -84,7 +84,8 @@ enum protocol_types {
 	PROTOCOL_NT1,
 	PROTOCOL_SMB2_02,
 	PROTOCOL_SMB2_10,
-	PROTOCOL_SMB2_22
+	PROTOCOL_SMB2_22,
+	PROTOCOL_SMB2_24
 };
 
 enum smb_signing_setting {
diff --git a/source3/smbd/smb2_negprot.c b/source3/smbd/smb2_negprot.c
index 61d2008..4cae143 100644
--- a/source3/smbd/smb2_negprot.c
+++ b/source3/smbd/smb2_negprot.c
@@ -119,6 +119,21 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
 	indyn = (const uint8_t *)req->in.vector[i+2].iov_base;
 
 	for (c=0; protocol == PROTOCOL_NONE && c < dialect_count; c++) {
+		if (lp_maxprotocol() < PROTOCOL_SMB2_24) {
+			break;
+		}
+		if (lp_minprotocol() > PROTOCOL_SMB2_24) {
+			break;
+		}
+
+		dialect = SVAL(indyn, c*2);
+		if (dialect == SMB2_DIALECT_REVISION_224) {
+			protocol = PROTOCOL_SMB2_24;
+			break;
+		}
+	}
+
+	for (c=0; protocol == PROTOCOL_NONE && c < dialect_count; c++) {
 		if (lp_maxprotocol() < PROTOCOL_SMB2_22) {
 			break;
 		}
diff --git a/source3/torture/test_smb2.c b/source3/torture/test_smb2.c
index 34fac4d..48786ae 100644
--- a/source3/torture/test_smb2.c
+++ b/source3/torture/test_smb2.c
@@ -211,7 +211,7 @@ bool run_smb2_negprot(int dummy)
 	cli->smb2.pid = 0xFEFF;
 
 	status = smbXcli_negprot(cli->conn, cli->timeout,
-				 PROTOCOL_CORE, PROTOCOL_SMB2_22);
+				 PROTOCOL_CORE, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;
@@ -229,6 +229,9 @@ bool run_smb2_negprot(int dummy)
 	case PROTOCOL_SMB2_22:
 		name = "SMB2_22";
 		break;
+	case PROTOCOL_SMB2_24:
+		name = "SMB2_24";
+		break;
 	default:
 		break;
 	}
@@ -284,7 +287,7 @@ bool run_smb2_session_reconnect(int dummy)
 	cli1->smb2.pid = 0xFEFF;
 
 	status = smbXcli_negprot(cli1->conn, cli1->timeout,
-				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_22);
+				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;
@@ -362,7 +365,7 @@ bool run_smb2_session_reconnect(int dummy)
 	cli2->smb2.pid = 0xFEFF;
 
 	status = smbXcli_negprot(cli2->conn, cli2->timeout,
-				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_22);
+				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;
@@ -664,7 +667,7 @@ bool run_smb2_tcon_dependence(int dummy)
 	cli->smb2.pid = 0xFEFF;
 
 	status = smbXcli_negprot(cli->conn, cli->timeout,
-				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_22);
+				 PROTOCOL_SMB2_02, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;
@@ -781,14 +784,14 @@ bool run_smb2_multi_channel(int dummy)
 	cli2->smb2.pid = 0xFEFF;
 
 	status = smbXcli_negprot(cli1->conn, cli1->timeout,
-				 PROTOCOL_SMB2_22, PROTOCOL_SMB2_22);
+				 PROTOCOL_SMB2_22, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;
 	}
 
 	status = smbXcli_negprot(cli2->conn, cli2->timeout,
-				 PROTOCOL_SMB2_22, PROTOCOL_SMB2_22);
+				 PROTOCOL_SMB2_22, PROTOCOL_SMB2_24);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smbXcli_negprot returned %s\n", nt_errstr(status));
 		return false;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list