From 49c58d86ceb7816c5f0ca36e38e26cd6b8506d74 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 18 Jul 2016 04:59:11 +0000 Subject: daemon: ignore ENOTSOCK from setsockopt 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 Signed-off-by: Junio C Hamano --- daemon.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/daemon.c b/daemon.c index 46dddaca5..a84495113 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) -- cgit v1.2.1