]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/config.c
Another concurrency typo.
[openldap] / servers / slapd / config.c
index 6dcaae3d42f3bf08a048b9d1804bb433176f99b3..06d5c4f3c43ba616dd19ea10c5f702024a6c330e 100644 (file)
@@ -33,8 +33,16 @@ static void  fp_parse_line(char *line, int *argcp, char **argv);
 
 static char    *strtok_quote(char *line, char *sep);
 
+/*  the old interface for tools  */
 void
 read_config( char *fname, Backend **bep, FILE *pfp )
+{
+       read_config_env( fname, bep, pfp, 0 );
+}
+
+/*  the new interface for slapd  */
+void
+read_config_env( char *fname, Backend **bep, FILE *pfp, int startup )
 {
        FILE    *fp;
        char    *line, *savefname;
@@ -282,7 +290,7 @@ read_config( char *fname, Backend **bep, FILE *pfp )
                                    fname, lineno, 0 );
                                exit( 1 );
                        }
-                       default_referral = (char *) malloc( strlen( cargv[1] )
+                       default_referral = (char *) ch_malloc( strlen( cargv[1] )
                            + sizeof("Referral:\n") + 1 );
                        strcpy( default_referral, "Referral:\n" );
                        strcat( default_referral, cargv[1] );
@@ -471,6 +479,8 @@ read_config( char *fname, Backend **bep, FILE *pfp )
                }
        }
        fclose( fp );
+
+       if ( startup ) be_startup();
 }
 
 static void