From 9728f535e27548925b93981662844b3a2fe7dbfa Mon Sep 17 00:00:00 2001 From: Joshua Krusell Date: Mon, 10 Aug 2015 12:22:12 +0200 Subject: 36039: Restart socket commands on EINTR --- Src/Modules/socket.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Src/Modules/socket.c') diff --git a/Src/Modules/socket.c b/Src/Modules/socket.c index cd56d4646..92d0a5035 100644 --- a/Src/Modules/socket.c +++ b/Src/Modules/socket.c @@ -191,8 +191,11 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func)) } len = sizeof(soun); - if ((rfd = accept(lfd, (struct sockaddr *)&soun, &len)) == -1) - { + do { + rfd = accept(lfd, (struct sockaddr *)&soun, &len); + } while (errno == EINTR && !errflag); + + if (rfd == -1) { zwarnnam(nam, "could not accept connection: %e", errno); return 1; } -- cgit v1.2.3