/* $OpenLDAP$ */
/*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include <ac/unistd.h>
#include "ldap_pvt.h"
+#include "ldap_pvt_thread.h"
#include "lutil.h"
#include "slap.h"
do { if (w) tcp_write( wake_sds[1], "0", 1 ); } while(0)
#endif
-#ifdef HAVE_NT_SERVICE_MANAGER
-/* in nt_main.c */
-/* externs are frowned upon, but so is NT :-) */
-extern ldap_pvt_thread_cond_t started_event;
-extern int is_NT_Service;
-#endif
-
#ifndef HAVE_WINSOCK
static
#endif
slapd_srvurls[i] = (char *) realloc( slapd_srvurls[i],
strlen( host ) +
sizeof( LDAP_SRVTYPE_PREFIX ) );
- strcpy( slapd_srvurls[i], LDAP_SRVTYPE_PREFIX );
- strcat( slapd_srvurls[i], host );
+ strcpy( slap_strcopy(slapd_srvurls[i],
+ LDAP_SRVTYPE_PREFIX ), host );
ch_free( host );
}
slapd_srvurls[i] = (char *) realloc( slapd_srvurls[i],
strlen( host ) +
sizeof( LDAPS_SRVTYPE_PREFIX ) );
- strcpy( slapd_srvurls[i], LDAPS_SRVTYPE_PREFIX );
- strcat( slapd_srvurls[i], host );
+ strcpy( slap_strcopy(slapd_srvurls[i],
+ LDAPS_SRVTYPE_PREFIX ), host );
ch_free( host );
}
for (n=2; (sai = sai->ai_next) != NULL; n++) {
/* EMPTY */ ;
}
- *sal = ch_malloc(n * sizeof(void *));
+ *sal = ch_calloc(n, sizeof(void *));
if (*sal == NULL) {
return -1;
}
inet_ntop( AF_INET, &((struct sockaddr_in *)*sal)->sin_addr,
addr, sizeof(addr) );
s = addr;
- port = ((struct sockaddr_in *)*sal) ->sin_port;
#else
- s = inet_ntoa( l.sl_addr.sin_addr );
- port = l.sl_addr.sin_port;
+ s = inet_ntoa( ((struct sockaddr_in *) *sal)->sin_addr );
#endif
+ port = ((struct sockaddr_in *)*sal) ->sin_port;
l.sl_name = ch_malloc( sizeof("IP=255.255.255.255:65535") );
sprintf( l.sl_name, "IP=%s:%d",
s != NULL ? s : "unknown" , port );
}
#endif /* LDAP_PF_LOCAL */
slapd_close( slap_listeners[l]->sl_sd );
- break;
}
+ if ( slap_listeners[l]->sl_url )
+ free ( slap_listeners[l]->sl_url );
+ if ( slap_listeners[l]->sl_name )
+ free ( slap_listeners[l]->sl_name );
+ free ( slap_listeners[l] );
}
+ free ( slap_listeners );
+ slap_listeners = NULL;
#ifdef NEW_LOGGING
LDAP_LOG(( "connection", LDAP_LEVEL_CRIT,