enable SO_KEEPALIVE for connected TCP sockets
commite47a8583a20256851e7fc882233e3bd5bf33dc6e
authorEric Wong <normalperson@yhbt.net>
Tue, 6 Dec 2011 04:39:36 +0000 (6 04:39 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 Dec 2011 05:06:53 +0000 (5 21:06 -0800)
tree0bdef533393b087b3fc6d560f57289d220a787c7
parentc2857fb8b7903b2bba9217310971e5282549174d
enable SO_KEEPALIVE for connected TCP sockets

Sockets may never receive notification of some link errors,
causing "git fetch" or similar processes to hang forever.
Enabling keepalive messages allows hung processes to error out
after a few minutes/hours depending on the keepalive settings of
the system.

This is a problem noticed when running non-interactive
cronjobs to mirror repositories using "git fetch".

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
connect.c