]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h1: Notify the stream waiting for TCP splicing if ibuf is empty
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 16 Apr 2019 11:55:08 +0000 (13:55 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 17 Apr 2019 12:52:31 +0000 (14:52 +0200)
commitf7d5ff37e07483be5d6eca84379c83d1a8edadfa
tree88590913b891d5f7a0cf3cbe407da98abbd6f9e6
parent2f320ee59c42800db3151dc50f5882bc745988d4
BUG/MEDIUM: mux-h1: Notify the stream waiting for TCP splicing if ibuf is empty

When a stream-interface want to use the TCP splicing to forward its data, it
notifies the mux h1. We will then flush the input buffer and don't read more
data. So the stream-interface will not be notified for read anymore, except if
an error or a read0 is detected. It is a problem everytime the receive I/O
callback is called again. It happens when the pipe is full or when no data are
received on the pipe. It also happens when the input buffer is freshly
flushed. Because the TCP splicing is enabled, nothing is done in h1_recv() and
the stream-interface is never woken up. So, now, in h1_recv(), if the TCP
splicing is used and the input buffer is empty, the stream-interface is notified
for read.

This patch must be backported to 1.9.
src/mux_h1.c