s3:smb2_server: grant credits in async interim responses (bug #8357)
authorStefan Metzmacher <metze@samba.org>
Tue, 8 Nov 2011 16:50:43 +0000 (17:50 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 9 Nov 2011 10:56:29 +0000 (11:56 +0100)
The first fix for bug #8357 intruduced a regression, so that we no
longer grant credits for real async interim responses with
STATUS_PENDING.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Wed Nov  9 11:56:29 CET 2011 on sn-devel-104

source3/smbd/smb2_server.c

index 5977e982c02ca2f15954de7451fa4e24c0224d92..33e95addbede20fb62feaf0b7ea5912e81e76312 100644 (file)
@@ -955,7 +955,7 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req,
        SIVAL(hdr, SMB2_HDR_STATUS, NT_STATUS_V(STATUS_PENDING));
        SSVAL(hdr, SMB2_HDR_OPCODE, SVAL(reqhdr, SMB2_HDR_OPCODE));
 
-       SIVAL(hdr, SMB2_HDR_FLAGS, flags | SMB2_HDR_FLAG_ASYNC);
+       SIVAL(hdr, SMB2_HDR_FLAGS, flags);
        SIVAL(hdr, SMB2_HDR_NEXT_COMMAND, 0);
        SBVAL(hdr, SMB2_HDR_MESSAGE_ID, message_id);
        SBVAL(hdr, SMB2_HDR_PID, async_id);
@@ -978,6 +978,8 @@ NTSTATUS smbd_smb2_request_pending_queue(struct smbd_smb2_request *req,
                        &req->in.vector[i],
                        &state->vector[1]);
 
+       SIVAL(hdr, SMB2_HDR_FLAGS, flags | SMB2_HDR_FLAG_ASYNC);
+
        if (req->do_signing) {
                status = smb2_signing_sign_pdu(req->session->session_key,
                                        &state->vector[1], 2);