]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/main.c
liberally accept many LDAPv2/LDAPv3 stuff in DN (quoted parts, ';' as rdn separator...
[openldap] / servers / slapd / main.c
index 8801d79c59c64effac91d586c6ca42fe3031f27a..0411a8d35fe06b4ec25c425dbada49247042efe1 100644 (file)
 #include <ac/wait.h>
 #include <ac/errno.h>
 
+#include "ldap_pvt.h"
+
 #include "slap.h"
 #include "lutil.h"
+#include "ldif.h"
 
 #ifdef LDAP_SIGCHLD
 static RETSIGTYPE wait4child( int sig );
@@ -29,7 +32,8 @@ struct sockaddr_in    bind_addr;
 /* in nt_main.c */
 LDAP_LUTIL_V(SERVICE_STATUS)           SLAPDServiceStatus;
 LDAP_LUTIL_V(SERVICE_STATUS_HANDLE)    hSLAPDServiceStatus;
-extern ldap_pvt_thread_cond_t  started_event,          stopped_event;
+/* externs are frowned upon, but so is NT :-) */
+extern ldap_pvt_thread_cond_t  started_event, stopped_event;
 extern int       is_NT_Service;
 
 void CommenceStartupProcessing( LPCTSTR serverName,
@@ -126,7 +130,7 @@ int main( int argc, char **argv )
 #endif
 {
        int             i, no_detach = 0;
-       int             rc;
+       int             rc = 1;
        char *urls = NULL;
 #if defined(HAVE_SETUID) && defined(HAVE_SETGID)
        char *username = NULL;
@@ -541,6 +545,12 @@ stop:
 #endif
        slapd_daemon_destroy();
 
+       schema_destroy();
+
+#ifdef HAVE_TLS
+       ldap_pvt_tls_destroy();
+#endif
+
 #ifdef CSRIMALLOC
        mal_dumpleaktrace( leakfile );
 #endif