]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smbd: response with the same SMB2 flags as given by the client
authorStefan Metzmacher <metze@samba.org>
Tue, 9 Jun 2009 17:46:29 +0000 (19:46 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 9 Jun 2009 17:51:03 +0000 (19:51 +0200)
...but also add the response flag.

metze

source3/smbd/smb2_server.c

index f14504249f1fa15c689937dc19472f8200ddae23..35ecd3a89387bb4028a20a8d1eacc0081e21f849 100644 (file)
@@ -277,6 +277,7 @@ static NTSTATUS smbd_smb2_request_setup_out(struct smbd_smb2_request *req)
 
        for (idx=1; idx < count; idx += 3) {
                const uint8_t *inhdr = NULL;
+               uint32_t in_flags;
                uint8_t *outhdr = NULL;
                uint8_t *outbody = NULL;
                uint32_t next_command_ofs = 0;
@@ -288,6 +289,7 @@ static NTSTATUS smbd_smb2_request_setup_out(struct smbd_smb2_request *req)
                }
 
                inhdr = (const uint8_t *)req->in.vector[idx].iov_base;
+               in_flags = IVAL(inhdr, SMB2_HDR_FLAGS);
 
                outhdr = talloc_array(vector, uint8_t,
                                      SMB2_HDR_BODY + 8);
@@ -316,7 +318,8 @@ static NTSTATUS smbd_smb2_request_setup_out(struct smbd_smb2_request *req)
                      SVAL(inhdr, SMB2_HDR_OPCODE));
                /* Make up a number for now... JRA. FIXME ! FIXME !*/
                SSVAL(outhdr, SMB2_HDR_CREDIT,          20);
-               SIVAL(outhdr, SMB2_HDR_FLAGS,           SMB2_HDR_FLAG_REDIRECT);
+               SIVAL(outhdr, SMB2_HDR_FLAGS,
+                     IVAL(inhdr, SMB2_HDR_FLAGS) | SMB2_HDR_FLAG_REDIRECT);
                SIVAL(outhdr, SMB2_HDR_NEXT_COMMAND,    next_command_ofs);
                SBVAL(outhdr, SMB2_HDR_MESSAGE_ID,
                      BVAL(inhdr, SMB2_HDR_MESSAGE_ID));