BUG/MINOR: stconn: Fix streamer detection for HTX streams

Since the HTX was introduced, the streamer detection is broken for HTX
streams because the HTX overhead was not counted in the test to set
CF_STREAMER and CF_STREAMER_FAST flags.

The consequence was that the consumer side was no longer able to send more
than tune.ssl.maxrecord at a time in SSL.

To fix the issue, we now count the HTX overhead of HTX streams to be able to
set CF_STREAMER/CF_STREAMER_FAST flags on a channel.

This patch relies on folloing commits:

  * "MINOR: channel: Add functions to get info on buffers and deal with HTX streams"
  * "MINOR: htx: Use a macro for overhead induced by HTX"

The series must be backported as far as 2.2.
This commit is contained in:
Christopher Faulet 2023-11-17 11:23:11 +01:00
parent 020231ea79
commit 24409a5caa

View File

@ -1463,8 +1463,7 @@ static int sc_conn_recv(struct stconn *sc)
ic->flags &= ~CF_STREAMER_FAST;
}
}
else if (!(ic->flags & CF_STREAMER_FAST) &&
(cur_read >= ic->buf.size - global.tune.maxrewrite)) {
else if (!(ic->flags & CF_STREAMER_FAST) && (cur_read >= channel_data_limit(ic))) {
/* we read a full buffer at once */
ic->xfer_small = 0;
ic->xfer_large++;