]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: cli: make "show fd" use a const connection to access other fields
authorWilly Tarreau <w@1wt.eu>
Wed, 20 Jan 2021 13:13:46 +0000 (14:13 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 20 Jan 2021 16:17:39 +0000 (17:17 +0100)
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.

src/cli.c

index c527e906d2ff96888171bc5bbb155c96b2502b2e..03f175763b98ee396f1b92732ac5708c3373ad1d 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -1027,11 +1027,12 @@ static int cli_io_handler_show_fd(struct appctx *appctx)
         */
        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 @@ static int cli_io_handler_show_fd(struct appctx *appctx)
                                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 @@ static int cli_io_handler_show_fd(struct appctx *appctx)
                                      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);