} else {
/* host or address was specified */
-
-#ifdef HAVE_WINSOCK
- if((l.sl_addr.sin_addr.S_un.S_addr = inet_addr(lud->lud_host)) == INADDR_NONE)
-#else
- if(!inet_aton(lud->lud_host, &l.sl_addr.sin_addr))
-#endif
- {
+ if( !inet_aton( lud->lud_host, &l.sl_addr.sin_addr ) ) {
struct hostent *he = gethostbyname( lud->lud_host );
if( he == NULL ) {
Debug( LDAP_DEBUG_ANY, "invalid host (%s) in URL: %s",
return NULL;
}
-#ifdef HAVE_WINSOCK
- memcpy( &l.sl_addr.sin_addr.S_un.S_addr, he->h_addr,
- sizeof( l.sl_addr.sin_addr.S_un.S_addr ) );
-#else
memcpy( &l.sl_addr.sin_addr, he->h_addr,
sizeof( l.sl_addr.sin_addr ) );
-#endif
}
}
{
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" );
{
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" );
char *dnsname;
char *peeraddr;
- char peername[sizeof("IP:255.255.255.255:65336")];
+ char peername[sizeof("IP=255.255.255.255:65336")];
if ( slap_listeners[l]->sl_sd == AC_SOCKET_INVALID )
continue;
}
peeraddr = inet_ntoa( from.sin_addr );
- sprintf( peername, "IP:%s:%d",
+ sprintf( peername, "IP=%s:%d",
peeraddr != NULL ? peeraddr : "unknown",
(unsigned) ntohs( from.sin_port ) );
if( (id = connection_init(s,
slap_listeners[l]->sl_url,
- dnsname, peername,
+ dnsname != NULL ? dnsname : "unknown",
+ peername,
slap_listeners[l]->sl_name,
#ifdef HAVE_TLS
slap_listeners[l]->sl_is_tls
{
ber_socket_t rd;
int is_listener = 0;
- int rc;
#ifdef HAVE_WINSOCK
rd = readfds.fd_array[i];