From 1a7d72e62946e69641c097f58e8536112beb46aa Mon Sep 17 00:00:00 2001
From: Kurt Zeilenga <kurt@openldap.org>
Date: Mon, 24 May 1999 22:20:34 +0000
Subject: [PATCH] setsockopt( SO_KEEPALIVE ) on the listen() socket.  Will be
 inherited on accept().

---
 servers/slapd/daemon.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
index b84ce2d188..86410a54fc 100644
--- a/servers/slapd/daemon.c
+++ b/servers/slapd/daemon.c
@@ -224,6 +224,20 @@ set_socket( struct sockaddr_in *addr )
 					? sys_errlist[err] : "unknown" );
 		}
 #endif
+#ifdef SO_KEEPALIVE
+		tmp = 1;
+		if ( setsockopt( tcps, SOL_SOCKET, SO_KEEPALIVE,
+			(char *) &tmp, sizeof(tmp) ) == -1 )
+		{
+			int err = errno;
+			Debug( LDAP_DEBUG_ANY,
+				"slapd(%d): setsockopt(KEEPALIVE) failed errno %d (%s)\n",
+		    	tcps, err,
+				err > -1 && err < sys_nerr
+					? sys_errlist[err] : "unknown" );
+		}
+#endif
+
 
 		if ( bind( tcps, (struct sockaddr *) addr, sizeof(*addr) ) == -1 ) {
 			int err = errno;
@@ -282,7 +296,7 @@ slapd_daemon_task(
 
 	while ( !slapd_shutdown ) {
 		unsigned int i;
-		int ns, nfds, tmp;
+		int ns, nfds;
 
 		fd_set			readfds;
 		fd_set			writefds;
@@ -456,20 +470,6 @@ slapd_daemon_task(
 #endif /* HAVE_TCPD */
 
 
-#ifdef SO_KEEPALIVE
-			tmp = 1;
-			if ( setsockopt( tcps, SOL_SOCKET, SO_KEEPALIVE,
-				(char *) &tmp, sizeof(tmp) ) == -1 )
-			{
-				int err = errno;
-				Debug( LDAP_DEBUG_ANY,
-					"slapd(%d): setsockopt(KEEPALIVE) failed errno %d (%s)\n",
-			    	tcps, err,
-					err > -1 && err < sys_nerr
-						? sys_errlist[err] : "unknown" );
-			}
-#endif
-
 			if( (id = connection_init(s, client_name, client_addr)) < 0 ) {
 				Debug( LDAP_DEBUG_ANY,
 					"daemon: connection_init(%d, %s, %s) failed.\n",
-- 
GitLab