]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/daemon.c
ITS#5328: Make relay_back_has_subordinates() return failure on failure
[openldap] / servers / slapd / daemon.c
index a7a0bb2179d657933c3dee6f82a75d009a44f230..55681f47124044d5e29832d0cd16ac224f9bf808 100644 (file)
@@ -539,6 +539,7 @@ static struct slap_daemon {
        slap_daemon.sd_flags = (char *)(slapd_ws_sockets + dtblsize); \
        slap_daemon.sd_rflags = slap_daemon.sd_flags + dtblsize; \
        memset( slapd_ws_sockets, -1, dtblsize * sizeof(SOCKET) ); \
+       memset( slap_daemon.sd_flags, 0, dtblsize ); \
        slapd_ws_sockets[0] = wake_sds[0]; \
        slapd_ws_sockets[1] = wake_sds[1]; \
        wake_sds[0] = 0; \
@@ -686,16 +687,16 @@ slapd_slp_init( const char* urls )
        for ( i = 0; slapd_srvurls[i] != NULL; i++ ) {
                if ( strcmp( slapd_srvurls[i], "ldap:///" ) == 0 ) {
                        slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i],
-                               strlen( global_host ) +
+                               global_host_bv.bv_len +
                                sizeof( LDAP_SRVTYPE_PREFIX ) );
                        strcpy( lutil_strcopy(slapd_srvurls[i],
-                               LDAP_SRVTYPE_PREFIX ), global_host );
+                               LDAP_SRVTYPE_PREFIX ), global_host_bv.bv_val );
                } else if ( strcmp( slapd_srvurls[i], "ldaps:///" ) == 0 ) {
                        slapd_srvurls[i] = (char *) ch_realloc( slapd_srvurls[i],
-                               strlen( global_host ) +
+                               global_host_bv.bv_len +
                                sizeof( LDAPS_SRVTYPE_PREFIX ) );
                        strcpy( lutil_strcopy(slapd_srvurls[i],
-                               LDAPS_SRVTYPE_PREFIX ), global_host );
+                               LDAPS_SRVTYPE_PREFIX ), global_host_bv.bv_val );
                }
        }
 
@@ -1670,7 +1671,8 @@ slapd_daemon_destroy( void )
 {
        connections_destroy();
 #ifdef HAVE_WINSOCK
-       if ( wake_sds[1] != INVALID_SOCKET && wake_sds[1] != wake_sds[0] )
+       if ( wake_sds[1] != INVALID_SOCKET &&
+               SLAP_FD2SOCK( wake_sds[1] ) != SLAP_FD2SOCK( wake_sds[0] ))
 #endif /* HAVE_WINSOCK */
                tcp_close( SLAP_FD2SOCK(wake_sds[1]) );
 #ifdef HAVE_WINSOCK