mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-20 09:31:42 +01:00
MUX QUIC snd_buf operation whill return early if a qcs instance is resetted. In this case, HTX is left untouched and the callback returns the whole bufer size. This lead to an undefined behavior as the stream layer is notified about a transfer but does not see its HTX buffer emptied. In the end, the transfer may stall which will lead to a leak on session. To fix this, HTX buffer is now resetted when snd_buf is short-circuited. This should fix the issue as now the stream layer can continue the transfer until its completion. This patch has already been tested by Tristan and is reported to solve the github issue #1801. This should be backported up to 2.6.
18 lines
502 B
C
18 lines
502 B
C
#ifndef _HAPROXY_MUX_QUIC_HTTP_H
|
|
#define _HAPROXY_MUX_QUIC_HTTP_H
|
|
|
|
#ifdef USE_QUIC
|
|
|
|
#include <haproxy/buf.h>
|
|
#include <haproxy/mux_quic.h>
|
|
|
|
size_t qcs_http_rcv_buf(struct qcs *qcs, struct buffer *buf, size_t count,
|
|
char *fin);
|
|
size_t qcs_http_snd_buf(struct qcs *qcs, struct buffer *buf, size_t count,
|
|
char *fin);
|
|
size_t qcs_http_reset_buf(struct qcs *qcs, struct buffer *buf, size_t count);
|
|
|
|
#endif /* USE_QUIC */
|
|
|
|
#endif /* _HAPROXY_MUX_QUIC_HTTP_H */
|