diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-05-30 07:55:29 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-05-30 07:55:29 +1000 |
commit | 437ca061077e77c3781db49243f0b3a290e8682d (patch) | |
tree | ae4a697cbc889c95cab16f7a6e169065d00b0b64 /source4/smb_server/smb2 | |
parent | 0613d0b2184319146697f817809d2fa9916f7ac5 (diff) | |
parent | 931d3d8fc5d9aa8ccb16018179fafa35968bb967 (diff) | |
download | samba-437ca061077e77c3781db49243f0b3a290e8682d.tar.gz samba-437ca061077e77c3781db49243f0b3a290e8682d.tar.bz2 samba-437ca061077e77c3781db49243f0b3a290e8682d.zip |
Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-local
(This used to be commit cd10b381765f9146f22f5cf23f0ef5f6a65e804d)
Diffstat (limited to 'source4/smb_server/smb2')
-rw-r--r-- | source4/smb_server/smb2/fileinfo.c | 3 | ||||
-rw-r--r-- | source4/smb_server/smb2/fileio.c | 12 | ||||
-rw-r--r-- | source4/smb_server/smb2/sesssetup.c | 3 |
3 files changed, 15 insertions, 3 deletions
diff --git a/source4/smb_server/smb2/fileinfo.c b/source4/smb_server/smb2/fileinfo.c index d6db61eaba..942000133c 100644 --- a/source4/smb_server/smb2/fileinfo.c +++ b/source4/smb_server/smb2/fileinfo.c @@ -55,8 +55,7 @@ static void smb2srv_getinfo_send(struct ntvfs_request *ntvfs) SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, true, op->info->out.blob.length)); - /* TODO: this is maybe a o16s32_blob */ - SMB2SRV_CHECK(smb2_push_o16s16_blob(&req->out, 0x02, op->info->out.blob)); + SMB2SRV_CHECK(smb2_push_o16s32_blob(&req->out, 0x02, op->info->out.blob)); SSVAL(req->out.body, 0x06, 0); smb2srv_send_reply(req); diff --git a/source4/smb_server/smb2/fileio.c b/source4/smb_server/smb2/fileio.c index 086ddc690e..2c322ea587 100644 --- a/source4/smb_server/smb2/fileio.c +++ b/source4/smb_server/smb2/fileio.c @@ -36,6 +36,18 @@ static void smb2srv_create_send(struct ntvfs_request *ntvfs) DATA_BLOB blob; SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_open); + + /* setup the blobs we should give in the reply */ + if (io->smb2.out.maximal_access != 0) { + uint32_t data[2]; + SIVAL(data, 0, 0); + SIVAL(data, 4, io->smb2.out.maximal_access); + SMB2SRV_CHECK(smb2_create_blob_add(req, &io->smb2.out.blobs, + SMB2_CREATE_TAG_MXAC, + data_blob_const(data, 8))); + } + + SMB2SRV_CHECK(smb2_create_blob_push(req, &blob, io->smb2.out.blobs)); SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x58, true, blob.length)); diff --git a/source4/smb_server/smb2/sesssetup.c b/source4/smb_server/smb2/sesssetup.c index 1aaacf897c..d386bfc72d 100644 --- a/source4/smb_server/smb2/sesssetup.c +++ b/source4/smb_server/smb2/sesssetup.c @@ -158,7 +158,8 @@ static void smb2srv_sesssetup_backend(struct smb2srv_request *req, union smb_ses } if (!smb_sess) { - status = NT_STATUS_USER_SESSION_DELETED; + /* see WSPP test suite - test 11 */ + status = NT_STATUS_REQUEST_NOT_ACCEPTED; goto failed; } |