[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