s3: smbd: Add utility function smbd_smb2_is_last_in_compound().
authorJeremy Allison <jra@samba.org>
Thu, 20 Oct 2022 22:08:14 +0000 (15:08 -0700)
committerJule Anger <janger@samba.org>
Mon, 16 Jan 2023 09:40:17 +0000 (09:40 +0000)
Not yet used. Returns true if we're processing the last SMB2 request in a
compound.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15172

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
(cherry picked from commit e668c3a82cd566b405c976d45659dd79786948de)

source3/smbd/globals.h
source3/smbd/smb2_server.c

index eef38f00a4ed7abc717a5d918487d9a8d4518ad8..efd2032ce1ad7b8900c850568d7997546e9f3223 100644 (file)
@@ -238,6 +238,7 @@ void smbd_server_disconnect_client_ex(struct smbXsrv_client *client,
 const char *smb2_opcode_name(uint16_t opcode);
 bool smbd_is_smb2_header(const uint8_t *inbuf, size_t size);
 bool smbd_smb2_is_compound(const struct smbd_smb2_request *req);
+bool smbd_smb2_is_last_in_compound(const struct smbd_smb2_request *req);
 
 NTSTATUS smbd_add_connection(struct smbXsrv_client *client, int sock_fd,
                             NTTIME now, struct smbXsrv_connection **_xconn);
index f4e16cb7da9968829d40ed9be0df28f4eb96d566..f0b4814628b365f089e4cc9fdf36583d5d4a688b 100644 (file)
@@ -229,6 +229,12 @@ bool smbd_smb2_is_compound(const struct smbd_smb2_request *req)
        return req->in.vector_count >= (2*SMBD_SMB2_NUM_IOV_PER_REQ);
 }
 
+bool smbd_smb2_is_last_in_compound(const struct smbd_smb2_request *req)
+{
+       return (req->current_idx + SMBD_SMB2_NUM_IOV_PER_REQ ==
+               req->in.vector_count);
+}
+
 static NTSTATUS smbd_initialize_smb2(struct smbXsrv_connection *xconn,
                                     uint64_t expected_seq_low)
 {