From df15a5d1f3f1afead3cb6e08cb2e58928bbd4981 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 31 Mar 2023 11:28:22 +0200 Subject: [PATCH] MEDIUM: stats: Use the sedesc to report and detect end of processing Just like for other applets, we now use the SE descriptor instead of the channel to report error and end-of-stream. --- src/stats.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/stats.c b/src/stats.c index 2bc471c6e..5ce61ee66 100644 --- a/src/stats.c +++ b/src/stats.c @@ -4441,7 +4441,7 @@ static void http_stats_io_handler(struct appctx *appctx) res_htx = htx_from_buf(&res->buf); - if (unlikely(sc->state == SC_ST_DIS || sc->state == SC_ST_CLO)) + if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW)))) goto out; /* Check if the input buffer is available. */ @@ -4450,10 +4450,6 @@ static void http_stats_io_handler(struct appctx *appctx) goto out; } - /* check that the output is not closed */ - if (res->flags & (CF_SHUTW|CF_SHUTW_NOW|CF_SHUTR)) - appctx->st0 = STAT_HTTP_END; - /* all states are processed in sequence */ if (appctx->st0 == STAT_HTTP_HEAD) { if (stats_send_http_headers(sc, res_htx)) { @@ -4505,8 +4501,7 @@ static void http_stats_io_handler(struct appctx *appctx) } if (appctx->st0 == STAT_HTTP_END) { - if (!(res->flags & CF_SHUTR)) - sc_shutr(sc); + se_fl_set(appctx->sedesc, SE_FL_EOS); applet_will_consume(appctx); }