From: Amaury Denoyelle Date: Mon, 1 Aug 2022 09:42:48 +0000 (+0200) Subject: CLEANUP: mux-quic: remove useless app_ops is_active callback X-Git-Tag: v2.7-dev3~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ea5090f55c65b19e31c3cd5b823e609b808dad8;p=thirdparty%2Fhaproxy.git CLEANUP: mux-quic: remove useless app_ops is_active callback Timeout in QUIC MUX has evolved from the simple first implementation. At the beginning, a connection was considered dead unless bidirectional streams were opened. This was abstracted through an app callback is_active(). Now this paradigm has been reversed and a connection is considered alive by default, unless an error has been reported or a timeout has already been fired. The callback is_active() is thus not used anymore and can be safely removed to simplify qcc_is_dead(). This commit should be backported to 2.6. --- diff --git a/include/haproxy/mux_quic-t.h b/include/haproxy/mux_quic-t.h index a78609edb1..a3aff84344 100644 --- a/include/haproxy/mux_quic-t.h +++ b/include/haproxy/mux_quic-t.h @@ -176,7 +176,6 @@ struct qcc_app_ops { size_t (*snd_buf)(struct stconn *sc, struct buffer *buf, size_t count, int flags); void (*detach)(struct qcs *qcs); int (*finalize)(void *ctx); - int (*is_active)(const struct qcc *qcc, void *ctx); void (*release)(void *ctx); void (*inc_err_cnt)(void *ctx, int err_code); }; diff --git a/src/h3.c b/src/h3.c index d75c7d04c5..bda99cd2c6 100644 --- a/src/h3.c +++ b/src/h3.c @@ -1192,18 +1192,6 @@ static void h3_release(void *ctx) pool_free(pool_head_h3c, h3c); } -/* Check if the H3 connection can still be considered as active. - * - * Return true if active else false. - */ -static int h3_is_active(const struct qcc *qcc, void *ctx) -{ - if (qcc->strms[QCS_CLT_BIDI].nb_streams) - return 1; - - return 0; -} - /* Increment the h3 error code counters for value */ static void h3_stats_inc_err_cnt(void *ctx, int err_code) { @@ -1238,7 +1226,6 @@ const struct qcc_app_ops h3_ops = { .snd_buf = h3_snd_buf, .detach = h3_detach, .finalize = h3_finalize, - .is_active = h3_is_active, .release = h3_release, .inc_err_cnt = h3_stats_inc_err_cnt, }; diff --git a/src/hq_interop.c b/src/hq_interop.c index 5000a7e2ef..f2933d6b57 100644 --- a/src/hq_interop.c +++ b/src/hq_interop.c @@ -164,16 +164,7 @@ static size_t hq_interop_snd_buf(struct stconn *sc, struct buffer *buf, return total; } -static int hq_is_active(const struct qcc *qcc, void *ctx) -{ - if (!eb_is_empty(&qcc->streams_by_id)) - return 1; - - return 0; -} - const struct qcc_app_ops hq_interop_ops = { .decode_qcs = hq_interop_decode_qcs, .snd_buf = hq_interop_snd_buf, - .is_active = hq_is_active, }; diff --git a/src/mux_quic.c b/src/mux_quic.c index 5580d46fb1..65d62a4aa8 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -1001,10 +1001,6 @@ static void qcs_destroy(struct qcs *qcs) static inline int qcc_is_dead(const struct qcc *qcc) { - if (qcc->app_ops && qcc->app_ops->is_active && - qcc->app_ops->is_active(qcc, qcc->ctx)) - return 0; - if ((qcc->conn->flags & CO_FL_ERROR) || !qcc->task) return 1;