mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 09:07:02 +02:00
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.
This commit is contained in:
parent
d3973853c2
commit
4ea5090f55
@ -176,7 +176,6 @@ struct qcc_app_ops {
|
|||||||
size_t (*snd_buf)(struct stconn *sc, struct buffer *buf, size_t count, int flags);
|
size_t (*snd_buf)(struct stconn *sc, struct buffer *buf, size_t count, int flags);
|
||||||
void (*detach)(struct qcs *qcs);
|
void (*detach)(struct qcs *qcs);
|
||||||
int (*finalize)(void *ctx);
|
int (*finalize)(void *ctx);
|
||||||
int (*is_active)(const struct qcc *qcc, void *ctx);
|
|
||||||
void (*release)(void *ctx);
|
void (*release)(void *ctx);
|
||||||
void (*inc_err_cnt)(void *ctx, int err_code);
|
void (*inc_err_cnt)(void *ctx, int err_code);
|
||||||
};
|
};
|
||||||
|
13
src/h3.c
13
src/h3.c
@ -1192,18 +1192,6 @@ static void h3_release(void *ctx)
|
|||||||
pool_free(pool_head_h3c, h3c);
|
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 <error_code> value */
|
/* Increment the h3 error code counters for <error_code> value */
|
||||||
static void h3_stats_inc_err_cnt(void *ctx, int err_code)
|
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,
|
.snd_buf = h3_snd_buf,
|
||||||
.detach = h3_detach,
|
.detach = h3_detach,
|
||||||
.finalize = h3_finalize,
|
.finalize = h3_finalize,
|
||||||
.is_active = h3_is_active,
|
|
||||||
.release = h3_release,
|
.release = h3_release,
|
||||||
.inc_err_cnt = h3_stats_inc_err_cnt,
|
.inc_err_cnt = h3_stats_inc_err_cnt,
|
||||||
};
|
};
|
||||||
|
@ -164,16 +164,7 @@ static size_t hq_interop_snd_buf(struct stconn *sc, struct buffer *buf,
|
|||||||
return total;
|
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 = {
|
const struct qcc_app_ops hq_interop_ops = {
|
||||||
.decode_qcs = hq_interop_decode_qcs,
|
.decode_qcs = hq_interop_decode_qcs,
|
||||||
.snd_buf = hq_interop_snd_buf,
|
.snd_buf = hq_interop_snd_buf,
|
||||||
.is_active = hq_is_active,
|
|
||||||
};
|
};
|
||||||
|
@ -1001,10 +1001,6 @@ static void qcs_destroy(struct qcs *qcs)
|
|||||||
|
|
||||||
static inline int qcc_is_dead(const struct qcc *qcc)
|
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)
|
if ((qcc->conn->flags & CO_FL_ERROR) || !qcc->task)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user