s3:smb2_server: echo the SMB2_HDR_CREDIT_CHARGE and SMB2_HDR_SIGNATURE fields
authorStefan Metzmacher <metze@samba.org>
Thu, 27 Oct 2011 14:42:44 +0000 (16:42 +0200)
committerKarolin Seeger <kseeger@samba.org>
Wed, 9 Nov 2011 18:48:08 +0000 (19:48 +0100)
Windows just echos back the given values by default.

metze
(cherry picked from commit c7d3b6b2c38711943910aebff72b0188b0c346db)

source3/smbd/smb2_server.c

index 1c50d217765b923f4ef67dfe75c2eec186cc7cc5..c1fa45483a54729f97c72693461409bc70eabee5 100644 (file)
@@ -574,7 +574,8 @@ static NTSTATUS smbd_smb2_request_setup_out(struct smbd_smb2_request *req)
                /* setup the SMB2 header */
                SIVAL(outhdr, SMB2_HDR_PROTOCOL_ID,     SMB2_MAGIC);
                SSVAL(outhdr, SMB2_HDR_LENGTH,          SMB2_HDR_BODY);
-               SSVAL(outhdr, SMB2_HDR_EPOCH,           0);
+               SSVAL(outhdr, SMB2_HDR_CREDIT_CHARGE,
+                     SVAL(inhdr, SMB2_HDR_CREDIT_CHARGE));
                SIVAL(outhdr, SMB2_HDR_STATUS,
                      NT_STATUS_V(NT_STATUS_INTERNAL_ERROR));
                SSVAL(outhdr, SMB2_HDR_OPCODE,
@@ -590,7 +591,8 @@ static NTSTATUS smbd_smb2_request_setup_out(struct smbd_smb2_request *req)
                      IVAL(inhdr, SMB2_HDR_TID));
                SBVAL(outhdr, SMB2_HDR_SESSION_ID,
                      BVAL(inhdr, SMB2_HDR_SESSION_ID));
-               memset(outhdr + SMB2_HDR_SIGNATURE, 0, 16);
+               memcpy(outhdr + SMB2_HDR_SIGNATURE,
+                      inhdr + SMB2_HDR_SIGNATURE, 16);
 
                /* setup error body header */
                SSVAL(outbody, 0x00, 0x08 + 1);