mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
MINOR: socket transfer: Set a timeout on the socket.
Make sure we're not stuck forever by setting a timeout on the socket.
This commit is contained in:
parent
1fc0516516
commit
547408787f
@ -1025,6 +1025,7 @@ static int _getsocks(char **args, struct appctx *appctx, void *private)
|
|||||||
struct connection *remote = objt_conn(si_opposite(si)->end);
|
struct connection *remote = objt_conn(si_opposite(si)->end);
|
||||||
struct msghdr msghdr;
|
struct msghdr msghdr;
|
||||||
struct iovec iov;
|
struct iovec iov;
|
||||||
|
struct timeval tv = { .tv_sec = 1, .tv_usec = 0 };
|
||||||
int *tmpfd;
|
int *tmpfd;
|
||||||
int tot_fd_nb = 0;
|
int tot_fd_nb = 0;
|
||||||
struct proxy *px;
|
struct proxy *px;
|
||||||
@ -1049,6 +1050,7 @@ static int _getsocks(char **args, struct appctx *appctx, void *private)
|
|||||||
Warning("Cannot make the unix socket blocking\n");
|
Warning("Cannot make the unix socket blocking\n");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (void *)&tv, sizeof(tv));
|
||||||
iov.iov_base = &tot_fd_nb;
|
iov.iov_base = &tot_fd_nb;
|
||||||
iov.iov_len = sizeof(tot_fd_nb);
|
iov.iov_len = sizeof(tot_fd_nb);
|
||||||
if (!cli_has_level(appctx, ACCESS_LVL_ADMIN))
|
if (!cli_has_level(appctx, ACCESS_LVL_ADMIN))
|
||||||
|
@ -574,6 +574,7 @@ static int get_old_sockets(const char *unixsocket)
|
|||||||
struct msghdr msghdr;
|
struct msghdr msghdr;
|
||||||
struct iovec iov;
|
struct iovec iov;
|
||||||
struct xfer_sock_list *xfer_sock = NULL;
|
struct xfer_sock_list *xfer_sock = NULL;
|
||||||
|
struct timeval tv = { .tv_sec = 1, .tv_usec = 0 };
|
||||||
int sock = -1;
|
int sock = -1;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int ret2 = -1;
|
int ret2 = -1;
|
||||||
@ -603,6 +604,7 @@ static int get_old_sockets(const char *unixsocket)
|
|||||||
unixsocket);
|
unixsocket);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (void *)&tv, sizeof(tv));
|
||||||
iov.iov_base = &fd_nb;
|
iov.iov_base = &fd_nb;
|
||||||
iov.iov_len = sizeof(fd_nb);
|
iov.iov_len = sizeof(fd_nb);
|
||||||
msghdr.msg_iov = &iov;
|
msghdr.msg_iov = &iov;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user