summaryrefslogtreecommitdiff
path: root/Src/Modules/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Modules/socket.c')
-rw-r--r--Src/Modules/socket.c7
1 files changed, 5 insertions, 2 deletions
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;
}