MEDIUM: promex: 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/addons/promex/service-prometheus.c b/addons/promex/service-prometheus.c
index bc88a7b..d03399c 100644
--- a/addons/promex/service-prometheus.c
+++ b/addons/promex/service-prometheus.c
@@ -1486,7 +1486,6 @@
 	memcpy(res->buf.area, b_head(err), b_data(err));
 	res_htx = htx_from_buf(&res->buf);
 	channel_add_input(res, res_htx->data);
-	appctx->st0 = PROMEX_ST_END;
 	return -1;
 }
 
@@ -1539,7 +1538,8 @@
 	int ret;
 
 	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. */
@@ -1596,9 +1596,7 @@
 			__fallthrough;
 
 		case PROMEX_ST_END:
-			if (!(res->flags & CF_SHUTR)) {
-				sc_shutr(sc);
-			}
+			se_fl_set(appctx->sedesc, SE_FL_EOS);
 	}
 
   out:
@@ -1612,8 +1610,7 @@
 	return;
 
   error:
-	sc_shutr(sc);
-	sc_shutw(sc);
+	se_fl_set(appctx->sedesc, SE_FL_ERROR);
 	goto out;
 }