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)
committerStefan Metzmacher <metze@samba.org>
Mon, 31 Oct 2011 18:39:02 +0000 (19:39 +0100)
Windows just echos back the given values by default.

metze

source3/smbd/smb2_server.c

index 84b55cce7d1ef51d0493d972b0037cf84d791738..5d8acc420327fbd38e51fe6cbff7fdb6a2aa5d22 100644 (file)
@@ -577,7 +577,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,
@@ -593,7 +594,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);