mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-10 07:49:54 +00:00
3c8294b607
Due to the nature of multiplexed protocols, it will often happen that some operations are only performed on full frames, preventing any partial operation from being performed. HTTP/2 is one such example. The current MUX API causes a problem here because the rcv_buf() function has no way to let the stream layer know that some data could not be read due to a lack of room in the buffer, but that data are definitely present. The problem with this is that the stream layer might not know it needs to call the function again after it has made some room. And if the frame in the buffer is not followed by any other, nothing will move anymore. This patch introduces a new conn_stream flag CS_FL_RCV_MORE whose purpose is to indicate on the stream that more data than what was received are already available for reading as soon as more room will be available in the buffer. This patch doesn't make use of this flag yet, it only declares it. It is expected that other similar flags may come in the future, such as reports of pending end of stream, errors or any such event that might save the caller from having to poll, or simply let it know that it can take some actions after having processed data. |
||
---|---|---|
.. | ||
common | ||
import | ||
proto | ||
types |