From: Christopher Faulet Date: Tue, 3 Feb 2026 06:57:17 +0000 (+0100) Subject: MEDIUM: stream: Offer buffers of default size only X-Git-Tag: v3.4-dev5~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e62e8de5a782671a00ca81e6bd145de7a3635b38;p=thirdparty%2Fhaproxy.git MEDIUM: stream: Offer buffers of default size only Check the channels buffers size on release before trying to offer it to waiting entities. Only normal buffers must be considered. This will be mandatory when the large buffers support on channels will be added. --- diff --git a/src/stream.c b/src/stream.c index 873207a4a..2d6b23da2 100644 --- a/src/stream.c +++ b/src/stream.c @@ -658,7 +658,7 @@ void stream_free(struct stream *s) b_dequeue(&s->buffer_wait); if (s->req.buf.size || s->res.buf.size) { - int count = !!s->req.buf.size + !!s->res.buf.size; + int count = (s->req.buf.size == global.tune.bufsize) + (s->res.buf.size == global.tune.bufsize); b_free(&s->req.buf); b_free(&s->res.buf); @@ -807,11 +807,13 @@ void stream_release_buffers(struct stream *s) int offer = 0; if (c_size(&s->req) && c_empty(&s->req)) { - offer++; + if (c_size(&s->req) == global.tune.bufsize) + offer++; b_free(&s->req.buf); } if (c_size(&s->res) && c_empty(&s->res)) { - offer++; + if (c_size(&s->res) == global.tune.bufsize) + offer++; b_free(&s->res.buf); }