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.
diff --git a/src/stats.c b/src/stats.c
index 2bc471c..5ce61ee 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -4441,7 +4441,7 @@
 
 	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 @@
 		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 @@
 	}
 
 	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);
 	}