]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/daemon.c
Factor out ldif2* intialization to ldif2common.c
[openldap] / servers / slapd / daemon.c
index 3de1106ecf457f5366613331d58cb13993508422..e937ca9158af44cc9dc525b82c5487ac86034133 100644 (file)
@@ -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];