Skip to content
Snippets Groups Projects
Commit d147e609 authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Implement TCP_NODELAY on both client and server side.

parent f0c1fc37
No related branches found
No related tags found
No related merge requests found
......@@ -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" );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment