CLEANUP: cli: make "show fd" use a const connection to access other fields
Over time the code has uglified, casting fdt.owner as a struct connection
for about everything. Let's have a const struct connection* there and take
this opportunity for passing all fields as const as well.
Additionally a misplaced closing parenthesis on the output was fixed.
diff --git a/src/cli.c b/src/cli.c
index c527e90..03f1757 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -1027,11 +1027,12 @@
*/
while (fd >= 0 && fd < global.maxsock) {
struct fdtab fdt;
- struct listener *li = NULL;
- struct server *sv = NULL;
- struct proxy *px = NULL;
+ const struct listener *li = NULL;
+ const struct server *sv = NULL;
+ const struct proxy *px = NULL;
+ const struct connection *conn = NULL;
const struct mux_ops *mux = NULL;
- void *ctx = NULL;
+ const void *ctx = NULL;
uint32_t conn_flags = 0;
int is_back = 0;
@@ -1047,13 +1048,14 @@
goto skip; // closed
}
else if (fdt.iocb == sock_conn_iocb) {
- conn_flags = ((struct connection *)fdt.owner)->flags;
- mux = ((struct connection *)fdt.owner)->mux;
- ctx = ((struct connection *)fdt.owner)->ctx;
- li = objt_listener(((struct connection *)fdt.owner)->target);
- sv = objt_server(((struct connection *)fdt.owner)->target);
- px = objt_proxy(((struct connection *)fdt.owner)->target);
- is_back = conn_is_back((struct connection *)fdt.owner);
+ conn = (const struct connection *)fdt.owner;
+ conn_flags = conn->flags;
+ mux = conn->mux;
+ ctx = conn->ctx;
+ li = objt_listener(conn->target);
+ sv = objt_server(conn->target);
+ px = objt_proxy(conn->target);
+ is_back = conn_is_back(conn);
}
else if (fdt.iocb == sock_accept_iocb)
li = fdt.owner;
@@ -1104,11 +1106,13 @@
listener_state_str(li),
li->bind_conf->frontend->id);
}
+ else
+ chunk_appendf(&trash, ")");
#ifdef DEBUG_FD
chunk_appendf(&trash, " evcnt=%u", fdtab[fd].event_count);
#endif
- chunk_appendf(&trash, ")\n");
+ chunk_appendf(&trash, "\n");
if (ci_putchk(si_ic(si), &trash) == -1) {
si_rx_room_blk(si);