]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/main.c
More system schema checks
[openldap] / servers / slapd / main.c
index b71bb99d21126a6b28afe0988251e9b5773a8212..53ccf4004767eb5ddae2d1dc302e5ad64165d870 100644 (file)
@@ -1,6 +1,6 @@
 /* $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 "portable.h"
@@ -27,7 +27,7 @@ static RETSIGTYPE wait4child( int sig );
 
 #ifdef HAVE_NT_SERVICE_MANAGER
 #define MAIN_RETURN(x) return
-struct sockaddr_in     bind_addr;
+static struct sockaddr_in      bind_addr;
 
 void CommenceStartupProcessing( LPCTSTR serverName,
                                                           void(*stopper)(int));
@@ -135,6 +135,9 @@ int main( int argc, char **argv )
 #ifdef LOG_LOCAL4
     int            syslogUser = DEFAULT_SYSLOG_USER;
 #endif
+       
+       int g_argc = argc;
+       char **g_argv = argv;
 
 #ifdef HAVE_NT_SERVICE_MANAGER
        char            *configfile = ".\\slapd.conf";
@@ -151,8 +154,6 @@ int main( int argc, char **argv )
        }
 #endif
 
-       g_argc = argc;
-       g_argv = argv;
 
 #ifdef HAVE_NT_SERVICE_MANAGER
        {
@@ -307,9 +308,9 @@ int main( int argc, char **argv )
 
        if( serverName == NULL ) {
                if ( (serverName = strrchr( argv[0], *LDAP_DIRSEP )) == NULL ) {
-                       serverName = ch_strdup( argv[0] );
+                       serverName = argv[0];
                } else {
-                       serverName = ch_strdup( serverName + 1 );
+                       serverName = serverName + 1;
                }
        }
 
@@ -362,7 +363,7 @@ int main( int argc, char **argv )
                goto destroy;
        }
 
-       if ( schema_init( ) != 0 ) {
+       if ( slap_schema_init( ) != 0 ) {
 #ifdef NEW_LOGGING
                LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
                           "main: schema initialization error\n" ));
@@ -393,7 +394,7 @@ int main( int argc, char **argv )
                goto destroy;
        }
 
-       if ( schema_prep( ) != 0 ) {
+       if ( slap_schema_check( ) != 0 ) {
 #ifdef NEW_LOGGING
                LDAP_LOG(( "operation", LDAP_LEVEL_CRIT,
                           "main: schema prep error\n"));
@@ -556,6 +557,8 @@ stop:
        ldap_pvt_tls_destroy();
 #endif
 
+       config_destroy();
+
 #ifdef CSRIMALLOC
        mal_dumpleaktrace( leakfile );
 #endif