From 519cd2021bda11231d461f5974b4e321d0b4eb29 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Wed, 27 Jul 2022 11:48:54 +0200 Subject: [PATCH] MINOR: cli: emit a warning when _getsocks was used more than once The _getsocks CLI command can be used only once, after that the sockets are not available anymore. Emit a warning when the command was already used once. --- src/cli.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cli.c b/src/cli.c index 4724ba4f6..9b1625f95 100644 --- a/src/cli.c +++ b/src/cli.c @@ -1981,6 +1981,7 @@ static int bind_parse_severity_output(char **args, int cur_arg, struct proxy *px /* Send all the bound sockets, always returns 1 */ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *private) { + static int already_sent = 0; char *cmsgbuf = NULL; unsigned char *tmpbuf = NULL; struct cmsghdr *cmsg; @@ -2008,6 +2009,11 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr fd = remote->handle.fd; + if (already_sent) { + ha_warning("_getsocks: attempt to get sockets but they were already sent!\n"); + goto out; + } + /* Temporary set the FD in blocking mode, that will make our life easier */ old_fcntl = fcntl(fd, F_GETFL); if (old_fcntl < 0) { @@ -2144,6 +2150,8 @@ static int _getsocks(char **args, char *payload, struct appctx *appctx, void *pr } } + already_sent = 1; + /* flush pending stuff */ if (nb_queued) { iov.iov_len = curoff;