From: Vakul Garg <[email protected]>
Date: Wed, 16 Jan 2019 10:40:16 +0000

> This fixes recvmsg() to be able to peek across multiple tls records.
> Without this patch, the tls's selftests test case
> 'recv_peek_large_buf_mult_recs' fails. Each tls receive context now
> maintains a 'rx_list' to retain incoming skb carrying tls records. If a
> tls record needs to be retained e.g. for peek case or for the case when
> the buffer passed to recvmsg() has a length smaller than decrypted
> record length, then it is added to 'rx_list'. Additionally, records are
> added in 'rx_list' if the crypto operation runs in async mode. The
> records are dequeued from 'rx_list' after the decrypted data is consumed
> by copying into the buffer passed to recvmsg(). In case, the MSG_PEEK
> flag is used in recvmsg(), then records are not consumed or removed
> from the 'rx_list'.
> 
> Signed-off-by: Vakul Garg <[email protected]>
> ---
> Changes since v1:
> 
> 1. Added comments for function process_rx_list().
> 2. Fixed tls_decrypt_done() to adjust record offset & len only when
> decryption is successful.

Applied.

Reply via email to