X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fdaemon.c;h=e937ca9158af44cc9dc525b82c5487ac86034133;hb=48b63d4f165269f29c35f89cceddd880c3966ef5;hp=3de1106ecf457f5366613331d58cb13993508422;hpb=933908f72f23f9bded8df99fa29ac39ded3435ab;p=openldap diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 3de1106ecf..e937ca9158 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -251,13 +251,7 @@ open_listener( } 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", @@ -266,13 +260,8 @@ open_listener( 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 } } @@ -312,7 +301,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 +314,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" ); @@ -625,7 +627,7 @@ slapd_daemon_task( 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; @@ -685,7 +687,7 @@ slapd_daemon_task( } 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 ) ); @@ -725,7 +727,8 @@ slapd_daemon_task( 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 @@ -842,7 +845,6 @@ slapd_daemon_task( { ber_socket_t rd; int is_listener = 0; - int rc; #ifdef HAVE_WINSOCK rd = readfds.fd_array[i];