mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-18 10:07:56 -05:00
Implement TCP_NODELAY on both client and server side.
This commit is contained in:
parent
f0c1fc37f5
commit
d147e609d2
3 changed files with 28 additions and 2 deletions
|
|
@ -26,6 +26,7 @@
|
|||
#endif
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
|
|
|
|||
|
|
@ -91,6 +91,18 @@ ldap_connect_to_host( Sockbuf *sb, const char *host, unsigned long address,
|
|||
if (( s = socket( AF_INET, SOCK_STREAM, 0 )) < 0 ) {
|
||||
DO_RETURN( -1 );
|
||||
}
|
||||
#ifdef TCP_NODELAY
|
||||
{
|
||||
int tmp = 1;
|
||||
if( setsockopt( s, IPPROTO_TCP, TCP_NODELAY,
|
||||
&tmp, sizeof(tmp) ) == -1 )
|
||||
{
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"setsockopt(TCP_NODELAY failed on %d\n",
|
||||
s, 0, 0 );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef notyet
|
||||
status = 1;
|
||||
if ( async && ioctl( s, FIONBIO, (caddr_t)&status ) == -1 ) {
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ open_listener(
|
|||
{
|
||||
int err = errno;
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"slapd(%ld): setsockopt() failed errno %d (%s)\n",
|
||||
"slapd(%ld): setsockopt(SO_REUSEADDR) failed errno %d (%s)\n",
|
||||
(long) l.sl_sd, err,
|
||||
err > -1 && err < sys_nerr
|
||||
? sys_errlist[err] : "unknown" );
|
||||
|
|
@ -325,7 +325,20 @@ open_listener(
|
|||
{
|
||||
int err = errno;
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"slapd(%ld): setsockopt(KEEPALIVE) failed errno %d (%s)\n",
|
||||
"slapd(%ld): setsockopt(SO_KEEPALIVE) failed errno %d (%s)\n",
|
||||
(long) l.sl_sd, err,
|
||||
err > -1 && err < sys_nerr
|
||||
? sys_errlist[err] : "unknown" );
|
||||
}
|
||||
#endif
|
||||
#ifdef TCP_NODELAY
|
||||
tmp = 1;
|
||||
if ( setsockopt( l.sl_sd, IPPROTO_TCP, TCP_NODELAY,
|
||||
(char *)&tmp, sizeof(tmp) ) )
|
||||
{
|
||||
int err = errno;
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"slapd(%ld): setsockopt(TCP_NODELAY) failed errno %d (%s)\n",
|
||||
(long) l.sl_sd, err,
|
||||
err > -1 && err < sys_nerr
|
||||
? sys_errlist[err] : "unknown" );
|
||||
|
|
|
|||
Loading…
Reference in a new issue