mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 22:48:25 +00:00
MINOR: quic: Wrong RX buffer tail handling when no more contiguous data
The producer must know where is the tailing hole in the RX buffer when it purges it from consumed datagram. This is done allocating a fake datagram with the remaining number of bytes which cannot be produced at the tail of the RX buffer as length.
This commit is contained in:
parent
dc36404c36
commit
1712b1df59
@ -209,6 +209,17 @@ void quic_sock_fd_iocb(int fd)
|
||||
max_sz = params->max_udp_payload_size;
|
||||
cspace = b_contig_space(buf);
|
||||
if (cspace < max_sz) {
|
||||
struct quic_dgram *dgram;
|
||||
|
||||
/* Allocate a fake datagram, without data to locate
|
||||
* the end of the RX buffer (required during purging).
|
||||
*/
|
||||
dgram = pool_zalloc(pool_head_quic_dgram);
|
||||
if (!dgram)
|
||||
goto out;
|
||||
|
||||
dgram->len = cspace;
|
||||
LIST_APPEND(&rxbuf->dgrams, &dgram->list);
|
||||
/* Consume the remaining space */
|
||||
b_add(buf, cspace);
|
||||
if (b_contig_space(buf) < max_sz)
|
||||
|
Loading…
Reference in New Issue
Block a user