summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb2/receive.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-12-06 13:26:24 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:47:08 -0500
commit2634f22bfcd5172ae20e9fa0d236aee91c43c1ae (patch)
tree36a16dbf9fb00ee3b1e7b788454022cf947af071 /source4/smb_server/smb2/receive.c
parente5adca67f255555533934c1eb56268af8bd527a3 (diff)
downloadsamba-2634f22bfcd5172ae20e9fa0d236aee91c43c1ae.tar.gz
samba-2634f22bfcd5172ae20e9fa0d236aee91c43c1ae.tar.bz2
samba-2634f22bfcd5172ae20e9fa0d236aee91c43c1ae.zip
r12092: - add dummy functions for the missing SMB2 opcodes
- implement keepalive and logoff metze (This used to be commit 859ab627f45a5acca1deb66b8abdc38eaf49e5a2)
Diffstat (limited to 'source4/smb_server/smb2/receive.c')
-rw-r--r--source4/smb_server/smb2/receive.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source4/smb_server/smb2/receive.c b/source4/smb_server/smb2/receive.c
index 9afa10463f..7544e0be3e 100644
--- a/source4/smb_server/smb2/receive.c
+++ b/source4/smb_server/smb2/receive.c
@@ -56,7 +56,7 @@ NTSTATUS smb2srv_setup_reply(struct smb2srv_request *req, uint_t body_fixed_size
SIVAL(req->out.hdr, 0, SMB2_MAGIC);
SSVAL(req->out.hdr, SMB2_HDR_LENGTH, SMB2_HDR_BODY);
SSVAL(req->out.hdr, SMB2_HDR_PAD1, 0);
- SIVAL(req->out.hdr, SMB2_HDR_STATUS, 0);
+ SIVAL(req->out.hdr, SMB2_HDR_STATUS, NT_STATUS_V(req->status));
SSVAL(req->out.hdr, SMB2_HDR_OPCODE, SVAL(req->in.hdr, SMB2_HDR_OPCODE));
SSVAL(req->out.hdr, SMB2_HDR_PAD2, 0);
SIVAL(req->out.hdr, SMB2_HDR_FLAGS, 0x00000001);
@@ -133,6 +133,9 @@ static NTSTATUS smb2srv_reply(struct smb2srv_request *req)
case SMB2_OP_SESSSETUP:
smb2srv_sesssetup_recv(req);
return NT_STATUS_OK;
+ case SMB2_OP_LOGOFF:
+ smb2srv_logoff_recv(req);
+ return NT_STATUS_OK;
case SMB2_OP_TCON:
smb2srv_tcon_recv(req);
return NT_STATUS_OK;
@@ -145,15 +148,27 @@ static NTSTATUS smb2srv_reply(struct smb2srv_request *req)
case SMB2_OP_CLOSE:
smb2srv_close_recv(req);
return NT_STATUS_OK;
+ case SMB2_OP_FLUSH:
+ smb2srv_flush_recv(req);
+ return NT_STATUS_OK;
case SMB2_OP_READ:
smb2srv_read_recv(req);
return NT_STATUS_OK;
case SMB2_OP_WRITE:
smb2srv_write_recv(req);
return NT_STATUS_OK;
+ case SMB2_OP_LOCK:
+ smb2srv_lock_recv(req);
+ return NT_STATUS_OK;
+ case SMB2_OP_IOCTL:
+ smb2srv_ioctl_recv(req);
+ return NT_STATUS_OK;
case SMB2_OP_CANCEL:
smb2srv_cancel_recv(req);
return NT_STATUS_OK;
+ case SMB2_OP_KEEPALIVE:
+ smb2srv_keepalive_recv(req);
+ return NT_STATUS_OK;
case SMB2_OP_FIND:
smb2srv_find_recv(req);
return NT_STATUS_OK;