From: Willy Tarreau Date: Fri, 30 Mar 2018 12:41:19 +0000 (+0200) Subject: MINOR: mux: add a "show_fd" function to dump debugging information for "show fd" X-Git-Tag: v1.9-dev1~332 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b011d8f4c4ae87f4874b636866bfc69fa44a0e49;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/types/connection.h b/include/types/connection.h index cea61f5597..3dab54e902 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 b7d428d8a7..035f4e5a8b 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"); }