summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb2/sesssetup.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-07-01 14:14:11 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:09:42 -0500
commit6acd9aed93b09b74e53a3b854085c6c8fab41819 (patch)
treefcb31756c3b73737c81b391b62314417d883ede5 /source4/smb_server/smb2/sesssetup.c
parenta18fc61d4f6140ed6081d779dbad223cdd6df0cf (diff)
downloadsamba-6acd9aed93b09b74e53a3b854085c6c8fab41819.tar.gz
samba-6acd9aed93b09b74e53a3b854085c6c8fab41819.tar.bz2
samba-6acd9aed93b09b74e53a3b854085c6c8fab41819.zip
r16734: the 2 bytes after the opcode and before the flags,
is no padding... the following patch is needed for vista beta2 to connect to samba4 metze (This used to be commit 58baae8fc463cd2c4e4ce532c153ad80313b03eb)
Diffstat (limited to 'source4/smb_server/smb2/sesssetup.c')
-rw-r--r--source4/smb_server/smb2/sesssetup.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source4/smb_server/smb2/sesssetup.c b/source4/smb_server/smb2/sesssetup.c
index 6d472c26d4..e1c326bb9d 100644
--- a/source4/smb_server/smb2/sesssetup.c
+++ b/source4/smb_server/smb2/sesssetup.c
@@ -119,16 +119,21 @@ failed:
static void smb2srv_sesssetup_send(struct smb2srv_request *req, union smb_sesssetup *io)
{
- NTSTATUS status;
+ uint16_t unknown1;
- if (NT_STATUS_IS_ERR(req->status) && !NT_STATUS_EQUAL(req->status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
+ if (NT_STATUS_IS_OK(req->status)) {
+ unknown1 = 0x0003;
+ } else if (NT_STATUS_EQUAL(req->status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
+ unknown1 = 0x0002;
+ } else {
smb2srv_send_error(req, req->status);
return;
}
SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, True, io->smb2.out.secblob.length));
- SBVAL(req->out.hdr, SMB2_HDR_UID, io->smb2.out.uid);
+ SSVAL(req->out.hdr, SMB2_HDR_UNKNOWN1, unknown1);
+ SBVAL(req->out.hdr, SMB2_HDR_UID, io->smb2.out.uid);
SSVAL(req->out.body, 0x02, io->smb2.out._pad);
SMB2SRV_CHECK(smb2_push_o16s16_blob(&req->out, 0x04, io->smb2.out.secblob));
@@ -139,8 +144,6 @@ static void smb2srv_sesssetup_send(struct smb2srv_request *req, union smb_sessse
void smb2srv_sesssetup_recv(struct smb2srv_request *req)
{
union smb_sesssetup *io;
- NTSTATUS status;
-
SMB2SRV_CHECK_BODY_SIZE(req, 0x18, True);
SMB2SRV_TALLOC_IO_PTR(io, union smb_sesssetup);
@@ -170,8 +173,6 @@ static NTSTATUS smb2srv_logoff_backend(struct smb2srv_request *req)
static void smb2srv_logoff_send(struct smb2srv_request *req)
{
- NTSTATUS status;
-
if (NT_STATUS_IS_ERR(req->status)) {
smb2srv_send_error(req, req->status);
return;