summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb2/receive.c
diff options
context:
space:
mode:
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;