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.
diff --git a/src/cli.c b/src/cli.c
index 4724ba4..9b1625f 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -1981,6 +1981,7 @@
/* 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 @@
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 @@
}
}
+ already_sent = 1;
+
/* flush pending stuff */
if (nb_queued) {
iov.iov_len = curoff;