From 111e5a9b5fae3e18e252752f7c024c0009c14c1b Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Wed, 6 May 2015 21:09:56 +0200 Subject: [PATCH] restore recvmsg --- src/main-sec-mod-cmd.c | 4 +++- src/worker-misc.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main-sec-mod-cmd.c b/src/main-sec-mod-cmd.c index ffa6f4ff..7b273c74 100644 --- a/src/main-sec-mod-cmd.c +++ b/src/main-sec-mod-cmd.c @@ -74,7 +74,9 @@ int handle_sec_mod_commands(main_server_st * s) hdr.msg_iov = iov; hdr.msg_iovlen = 2; - ret = recvmsg(s->sec_mod_fd, &hdr, 0); + do { + ret = recvmsg(s->sec_mod_fd, &hdr, 0); + } while(ret == -1 && errno == EINTR); if (ret == -1) { e = errno; mslog(s, NULL, LOG_ERR, diff --git a/src/worker-misc.c b/src/worker-misc.c index 26b6822c..1be4a928 100644 --- a/src/worker-misc.c +++ b/src/worker-misc.c @@ -84,7 +84,9 @@ int handle_worker_commands(struct worker_st *ws) hdr.msg_control = control_un.control; hdr.msg_controllen = sizeof(control_un.control); - ret = recvmsg( ws->cmd_fd, &hdr, 0); + do { + ret = recvmsg( ws->cmd_fd, &hdr, 0); + } while(ret == -1 && errno == EINTR); if (ret == -1) { e = errno; oclog(ws, LOG_ERR, "cannot obtain data from command socket: %s", strerror(e));