From: Pierangelo Masarati Date: Sat, 14 Oct 2006 12:42:33 +0000 (+0000) Subject: apply slightly revised patch for SO_KEEPALIVE (ITS#4708) X-Git-Tag: OPENLDAP_REL_ENG_2_3_MP~55 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=387c21c7dd41963b3d3a9fdbe53fe37876cdbfd2;p=openldap apply slightly revised patch for SO_KEEPALIVE (ITS#4708) --- diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c index 9f85e800ac..002300722e 100644 --- a/libraries/libldap/os-ip.c +++ b/libraries/libldap/os-ip.c @@ -123,20 +123,31 @@ ldap_pvt_close_socket(LDAP *ld, int s) static int ldap_int_prepare_socket(LDAP *ld, int s, int proto ) { - osip_debug(ld, "ldap_prepare_socket: %d\n", s,0,0); + osip_debug( ld, "ldap_prepare_socket: %d\n", s, 0, 0 ); -#ifdef TCP_NODELAY - if( proto == LDAP_PROTO_TCP ) { +#if defined( SO_KEEPALIVE ) || defined( TCP_NODELAY ) + if ( proto == LDAP_PROTO_TCP ) { int dummy = 1; +#ifdef SO_KEEPALIVE + if ( setsockopt( s, SOL_SOCKET, SO_KEEPALIVE, + (char*) &dummy, sizeof(dummy) ) == AC_SOCKET_ERROR ) + { + osip_debug( ld, "ldap_prepare_socket: " + "setsockopt(%d, SO_KEEPALIVE) failed (ignored).\n", + s, 0, 0 ); + } +#endif /* SO_KEEPALIVE */ +#ifdef TCP_NODELAY if ( setsockopt( s, IPPROTO_TCP, TCP_NODELAY, (char*) &dummy, sizeof(dummy) ) == AC_SOCKET_ERROR ) { - osip_debug(ld, "ldap_prepare_socket: " + osip_debug( ld, "ldap_prepare_socket: " "setsockopt(%d, TCP_NODELAY) failed (ignored).\n", - s, 0, 0); + s, 0, 0 ); } +#endif /* TCP_NODELAY */ } -#endif +#endif /* SO_KEEPALIVE || TCP_NODELAY */ return 0; }