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 cea61f5..3dab54e 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -306,6 +306,7 @@
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 b7d428d..035f4e5 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -834,8 +834,11 @@
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");
}