[PATCH] daemon: ignore ENOTSOCK from setsockopt
From: Eric Wong <hidden>
Date: 2016-07-18 05:00:28
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Eric Wong <hidden>
Date: 2016-07-18 05:00:28
Subsystem:
the rest · Maintainer:
Linus Torvalds
In inetd mode, we are not guaranteed stdin or stdout is a socket; callers could filter the data through a pipe or be testing with regular files. This prevents t5802 from polluting syslog. Signed-off-by: Eric Wong <redacted> --- daemon.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/daemon.c b/daemon.c
index 46dddac..a844951 100644
--- a/daemon.c
+++ b/daemon.c@@ -673,9 +673,11 @@ static void set_keep_alive(int sockfd) { int ka = 1; - if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &ka, sizeof(ka)) < 0) - logerror("unable to set SO_KEEPALIVE on socket: %s", - strerror(errno)); + if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &ka, sizeof(ka)) < 0) { + if (errno != ENOTSOCK) + logerror("unable to set SO_KEEPALIVE on socket: %s", + strerror(errno)); + } } static int execute(void)
--
EW