]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/main.c
complete this round of constification
[openldap] / servers / slapd / main.c
index 8386f6eeb98ebe4f0a1185a438a9a016d47a8bc7..53398e99933097c65ec6cb17fed3d6352a20a40a 100644 (file)
@@ -159,6 +159,13 @@ int main( int argc, char **argv )
        int tls_port = 0;
 #endif
 
+#ifdef CSRIMALLOC
+       FILE *leakfile;
+       if( ( leakfile = fopen( "slapd.leak", "w" )) == NULL ) {
+               leakfile = stderr;
+       }
+#endif
+
        g_argc = argc;
        g_argv = argv;
 
@@ -282,7 +289,7 @@ int main( int argc, char **argv )
 
 #ifdef SLAPD_BDB2
                case 't':  /* timed server */
-                       serverMode = SLAP_TIMEDSERVER_MODE;
+                       serverMode |= SLAP_TIMED_MODE;
                        break;
 #endif
 
@@ -384,7 +391,11 @@ int main( int argc, char **argv )
 #endif
 #endif /* HAVE_WINSOCK */
 
-       if ( slap_startup(-1)  != 0 ) {
+#ifdef CSRIMALLOC
+       mal_leaktrace(1);
+#endif
+
+       if ( slap_startup( NULL )  != 0 ) {
                rc = 1;
                SERVICE_EXIT( ERROR_SERVICE_SPECIFIC_ERROR, 20 );
                goto shutdown;
@@ -427,7 +438,8 @@ int main( int argc, char **argv )
 
 shutdown:
        /* remember an error during shutdown */
-       rc |= slap_shutdown(-1);
+       rc |= slap_shutdown( NULL );
+
 destroy:
        /* remember an error during destroy */
        rc |= slap_destroy();
@@ -446,6 +458,10 @@ stop:
     closelog();
        slapd_daemon_destroy();
 
+#ifdef CSRIMALLOC
+       mal_dumpleaktrace( leakfile );
+#endif
+
        MAIN_RETURN(rc);
 }