]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: cache: Set conn-stream/channel EOI flags at the end of request
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 7 Mar 2022 14:53:57 +0000 (15:53 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 8 Mar 2022 17:24:16 +0000 (18:24 +0100)
This bug is the same than for the HTTP client. See "BUG/MINOR: httpclient:
Set conn-stream/channel EOI flags at the end of request" for details.

Note that because a filter is always attached to the stream when the cache
is used, there is no issue because there is no direct forwarding in this
case. Thus the stream analyzers are able to see the HTX_FL_EOM flag on the
HTX messge.

This patch must be backported as far as 2.0. But only CF_EOI must be set
because applets are not attached to a conn-stream on older versions.

src/cache.c

index 05f81e589e7d3b6dc0f3a6426e66cd52545bc8d7..d50dc9f1ca390b68488181fcbc2f9a4ec1f56036 100644 (file)
@@ -1500,6 +1500,8 @@ static void http_cache_io_handler(struct appctx *appctx)
        if (appctx->st0 == HTX_CACHE_EOM) {
                 /* no more data are expected. */
                res_htx->flags |= HTX_FL_EOM;
+               si->cs->flags |= CS_FL_EOI;
+               res->flags |= CF_EOI;
                appctx->st0 = HTX_CACHE_END;
        }