mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
MINOR: quic: filter closing conn on "show quic"
Reduce default "show quic" output by masking connection on closing/draing state due to a CONNECTION_CLOSE emission/reception. These connections can still be displayed using the special argument "all". This should be backported up to 2.7.
This commit is contained in:
parent
2eda63b447
commit
3f9758ecab
@ -2966,10 +2966,11 @@ show resolvers [<resolvers section id>]
|
|||||||
too_big: too big response
|
too_big: too big response
|
||||||
outdated: number of response arrived too late (after an other name server)
|
outdated: number of response arrived too late (after an other name server)
|
||||||
|
|
||||||
show quic
|
show quic [all]
|
||||||
Dump information on all active QUIC frontend connections. This command is
|
Dump information on all active QUIC frontend connections. This command is
|
||||||
restricted and can only be issued on sockets configured for levels "operator"
|
restricted and can only be issued on sockets configured for levels "operator"
|
||||||
or "admin".
|
or "admin". By default, connections on closing or draining state are not
|
||||||
|
displayed. Use the extra argument "all" to include them in the output.
|
||||||
|
|
||||||
show servers conn [<backend>]
|
show servers conn [<backend>]
|
||||||
Dump the current and idle connections state of the servers belonging to the
|
Dump the current and idle connections state of the servers belonging to the
|
||||||
|
@ -7624,8 +7624,11 @@ struct show_quic_ctx {
|
|||||||
unsigned int epoch;
|
unsigned int epoch;
|
||||||
struct bref bref; /* back-reference to the quic-conn being dumped */
|
struct bref bref; /* back-reference to the quic-conn being dumped */
|
||||||
unsigned int thr;
|
unsigned int thr;
|
||||||
|
int flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define QC_CLI_FL_SHOW_ALL 0x1 /* show closing/draining connections */
|
||||||
|
|
||||||
static int cli_parse_show_quic(char **args, char *payload, struct appctx *appctx, void *private)
|
static int cli_parse_show_quic(char **args, char *payload, struct appctx *appctx, void *private)
|
||||||
{
|
{
|
||||||
struct show_quic_ctx *ctx = applet_reserve_svcctx(appctx, sizeof(*ctx));
|
struct show_quic_ctx *ctx = applet_reserve_svcctx(appctx, sizeof(*ctx));
|
||||||
@ -7633,8 +7636,12 @@ static int cli_parse_show_quic(char **args, char *payload, struct appctx *appctx
|
|||||||
if (!cli_has_level(appctx, ACCESS_LVL_OPER))
|
if (!cli_has_level(appctx, ACCESS_LVL_OPER))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
if (*args[2] && strcmp(args[2], "all") == 0)
|
||||||
|
ctx->flags |= QC_CLI_FL_SHOW_ALL;
|
||||||
|
|
||||||
ctx->epoch = _HA_ATOMIC_FETCH_ADD(&qc_epoch, 1);
|
ctx->epoch = _HA_ATOMIC_FETCH_ADD(&qc_epoch, 1);
|
||||||
ctx->thr = 0;
|
ctx->thr = 0;
|
||||||
|
ctx->flags = 0;
|
||||||
|
|
||||||
LIST_INIT(&ctx->bref.users);
|
LIST_INIT(&ctx->bref.users);
|
||||||
|
|
||||||
@ -7699,6 +7706,12 @@ static int cli_io_handler_dump_quic(struct appctx *appctx)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ctx->flags & QC_CLI_FL_SHOW_ALL &&
|
||||||
|
qc->flags & (QUIC_FL_CONN_CLOSING|QUIC_FL_CONN_DRAINING)) {
|
||||||
|
ctx->bref.ref = qc->el_th_ctx.n;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/* CIDs */
|
/* CIDs */
|
||||||
chunk_appendf(&trash, "* %p[%02u]: scid=", qc, qc->tid);
|
chunk_appendf(&trash, "* %p[%02u]: scid=", qc, qc->tid);
|
||||||
for (cid_len = 0; cid_len < qc->scid.len; ++cid_len)
|
for (cid_len = 0; cid_len < qc->scid.len; ++cid_len)
|
||||||
|
Loading…
Reference in New Issue
Block a user