From b011d8f4c4ae87f4874b636866bfc69fa44a0e49 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 30 Mar 2018 14:41:19 +0200 Subject: [PATCH] MINOR: mux: add a "show_fd" function to dump debugging information for "show fd" This function will be called from the CLI's "show fd" command to append some extra mux-specific information that only the mux handler can decode. This is supposed to help collect various hints about what is happening when facing certain anomalies. --- include/types/connection.h | 1 + src/cli.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/types/connection.h b/include/types/connection.h index cea61f559..3dab54e90 100644 --- a/include/types/connection.h +++ b/include/types/connection.h @@ -306,6 +306,7 @@ struct mux_ops { struct conn_stream *(*attach)(struct connection *); /* Create and attach a conn_stream to an outgoing connection */ void (*detach)(struct conn_stream *); /* Detach a conn_stream from an outgoing connection, when the request is done */ + void (*show_fd)(struct chunk *, struct connection *); /* append some data about connection into chunk for "show fd" */ unsigned int flags; /* some flags characterizing the mux's capabilities (MX_FL_*) */ char name[8]; /* mux layer name, zero-terminated */ }; diff --git a/src/cli.c b/src/cli.c index b7d428d8a..035f4e5a8 100644 --- a/src/cli.c +++ b/src/cli.c @@ -834,8 +834,11 @@ static int cli_io_handler_show_fd(struct appctx *appctx) else if (li) chunk_appendf(&trash, " fe=%s", li->bind_conf->frontend->id); - if (mux) + if (mux) { chunk_appendf(&trash, " mux=%s mux_ctx=%p", mux->name, ctx); + if (mux->show_fd) + mux->show_fd(&trash, fdt.owner); + } else chunk_appendf(&trash, " nomux"); }