Merge branch 'ew/daemon-socket-keepalive'

Recent update to "git daemon" tries to enable the socket-level
KEEPALIVE, but when it is spawned via inetd, the standard input
file descriptor may not necessarily be connected to a socket.
Suppress an ENOTSOCK error from setsockopt().

* ew/daemon-socket-keepalive:
  Windows: add missing definition of ENOTSOCK
  daemon: ignore ENOTSOCK from setsockopt
This commit is contained in:
Junio C Hamano 2016-07-28 10:34:43 -07:00
Родитель ad2d777604 fab6027480
Коммит b48dfd86c9
2 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -73,6 +73,9 @@ typedef int pid_t;
#ifndef ECONNABORTED
#define ECONNABORTED WSAECONNABORTED
#endif
#ifndef ENOTSOCK
#define ENOTSOCK WSAENOTSOCK
#endif
struct passwd {
char *pw_name;

Просмотреть файл

@ -672,9 +672,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)