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 <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Eric Wong 2016-07-18 04:59:11 +00:00 committed by Junio C Hamano
parent a43b68a196
commit 49c58d86ce

View File

@ -673,9 +673,11 @@ static void set_keep_alive(int sockfd)
{ {
int ka = 1; int ka = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &ka, sizeof(ka)) < 0) if (setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &ka, sizeof(ka)) < 0) {
logerror("unable to set SO_KEEPALIVE on socket: %s", if (errno != ENOTSOCK)
strerror(errno)); logerror("unable to set SO_KEEPALIVE on socket: %s",
strerror(errno));
}
} }
static int execute(void) static int execute(void)