X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fdaemon.c;h=9f86d3d13035d64fe8cf4aec1f7afd065ed3627e;hb=6a9c44849c1c20b9d961de7a0b6585dcd059154a;hp=d9ea1fd04d935997cff9b807c36f4e6785c2aca4;hpb=6f1d78b3ce1030aa84fee2526bfa6e9969b8db23;p=openldap diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index d9ea1fd04d..9f86d3d130 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation. + * Copyright 1998-2007 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -494,6 +494,7 @@ static struct slap_daemon { # define SLAP_SOCK_INIT do { \ SLAP_SELECT_CHK_SETSIZE; \ + FD_ZERO(&slap_daemon.sd_actives); \ FD_ZERO(&slap_daemon.sd_readers); \ FD_ZERO(&slap_daemon.sd_writers); \ } while (0) @@ -582,28 +583,17 @@ slapd_slp_init( const char* urls ) /* find and expand INADDR_ANY URLs */ for ( i = 0; slapd_srvurls[i] != NULL; i++ ) { if ( strcmp( slapd_srvurls[i], "ldap:///" ) == 0 ) { - char *host = ldap_pvt_get_fqdn( NULL ); - if ( host != NULL ) { - slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i], - strlen( host ) + - sizeof( LDAP_SRVTYPE_PREFIX ) ); - strcpy( lutil_strcopy(slapd_srvurls[i], - LDAP_SRVTYPE_PREFIX ), host ); - - ch_free( host ); - } - + slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i], + strlen( global_host ) + + sizeof( LDAP_SRVTYPE_PREFIX ) ); + strcpy( lutil_strcopy(slapd_srvurls[i], + LDAP_SRVTYPE_PREFIX ), global_host ); } else if ( strcmp( slapd_srvurls[i], "ldaps:///" ) == 0 ) { - char *host = ldap_pvt_get_fqdn( NULL ); - if ( host != NULL ) { - slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i], - strlen( host ) + - sizeof( LDAPS_SRVTYPE_PREFIX ) ); - strcpy( lutil_strcopy(slapd_srvurls[i], - LDAPS_SRVTYPE_PREFIX ), host ); - - ch_free( host ); - } + slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i], + strlen( global_host ) + + sizeof( LDAPS_SRVTYPE_PREFIX ) ); + strcpy( lutil_strcopy(slapd_srvurls[i], + LDAPS_SRVTYPE_PREFIX ), global_host ); } } @@ -1387,9 +1377,9 @@ slap_open_listener( inet_ntop( AF_INET6, &((struct sockaddr_in6 *)*sal)->sin6_addr, addr, sizeof addr); port = ntohs( ((struct sockaddr_in6 *)*sal)->sin6_port ); - l.sl_name.bv_len = strlen(addr) + sizeof("IP= 65535"); + l.sl_name.bv_len = strlen(addr) + sizeof("IP=[]:65535"); l.sl_name.bv_val = ber_memalloc( l.sl_name.bv_len ); - snprintf( l.sl_name.bv_val, l.sl_name.bv_len, "IP=%s %d", + snprintf( l.sl_name.bv_val, l.sl_name.bv_len, "IP=[%s]:%d", addr, port ); l.sl_name.bv_len = strlen( l.sl_name.bv_val ); } break; @@ -1594,13 +1584,13 @@ slap_listener( #ifdef LDAP_PF_LOCAL char peername[MAXPATHLEN + sizeof("PATH=")]; #elif defined(LDAP_PF_INET6) - char peername[sizeof("IP=ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 65535")]; + char peername[sizeof("IP=[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:65535")]; #else /* ! LDAP_PF_LOCAL && ! LDAP_PF_INET6 */ char peername[sizeof("IP=255.255.255.255:65336")]; #endif /* LDAP_PF_LOCAL */ Debug( LDAP_DEBUG_TRACE, - ">>> slap_listener(%s)", + ">>> slap_listener(%s)\n", sl->sl_url.bv_val, 0, 0 ); peername[0] = '\0'; @@ -1758,7 +1748,7 @@ slap_listener( peeraddr = (char *) inet_ntop( AF_INET6, &from.sa_in6_addr.sin6_addr, addr, sizeof addr ); - sprintf( peername, "IP=%s %d", + sprintf( peername, "IP=[%s]:%d", peeraddr != NULL ? peeraddr : SLAP_STRING_UNKNOWN, (unsigned) ntohs( from.sa_in6_addr.sin6_port ) ); } @@ -1766,10 +1756,10 @@ slap_listener( # endif /* LDAP_PF_INET6 */ case AF_INET: - peeraddr = inet_ntoa( from.sa_in_addr.sin_addr ); - sprintf( peername, "IP=%s:%d", - peeraddr != NULL ? peeraddr : SLAP_STRING_UNKNOWN, - (unsigned) ntohs( from.sa_in_addr.sin_port ) ); + peeraddr = inet_ntoa( from.sa_in_addr.sin_addr ); + sprintf( peername, "IP=%s:%d", + peeraddr != NULL ? peeraddr : SLAP_STRING_UNKNOWN, + (unsigned) ntohs( from.sa_in_addr.sin_port ) ); break; default: