aboutsummaryrefslogtreecommitdiffstats
path: root/util/ulockmgr_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/ulockmgr_server.c')
-rw-r--r--util/ulockmgr_server.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c
index 211d74a..4f831b0 100644
--- a/util/ulockmgr_server.c
+++ b/util/ulockmgr_server.c
@@ -75,8 +75,12 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp,
msg.msg_controllen = sizeof(ccmsg);
res = recvmsg(sock, &msg, MSG_WAITALL);
- if (!res)
- return 0;
+ if (!res) {
+ /* retry on zero return, see do_recv() in ulockmgr.c */
+ res = recvmsg(sock, &msg, MSG_WAITALL);
+ if (!res)
+ return 0;
+ }
if (res == -1) {
perror("ulockmgr_server: recvmsg");
return -1;