]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb2/config.c
Change 'unsigned long len' to ber_len_t in get_filter()
[openldap] / servers / slapd / back-bdb2 / config.c
index 92d2e46db2e36b2d09e08de960576042607dba2e..e38b8542ebbd22aa85bc081c1861b4b45d1beded 100644 (file)
 #include "slap.h"
 #include "back-bdb2.h"
 
+static int
+bdb2i_back_config_internal(
+    BackendInfo        *bi,
+    char               *fname,
+    int                        lineno,
+    int                        argc,
+    char               **argv
+)
+{
+       struct ldbtype  *lty = (struct ldbtype *) bi->bi_private;
+
+       if ( lty == NULL ) {
+               fprintf( stderr, "%s: line %d: ldbm backend type info is null!\n",
+                   fname, lineno );
+               return( 1 );
+       }
+
+       /* directory where DB control files live */
+       if ( strcasecmp( argv[0], "home" ) == 0 ) {
+               if ( argc < 2 ) {
+                       fprintf( stderr,
+               "%s: line %d: missing dir in \"home <dir>\" line\n",
+                           fname, lineno );
+                       return( 1 );
+               }
+               lty->lty_dbhome = ch_strdup( argv[1] );
+
+       /* size of the DB memory pool */
+       } else if ( strcasecmp( argv[0], "mpoolsize" ) == 0 ) {
+               if ( argc < 2 ) {
+                       fprintf( stderr,
+                       "%s: line %d: missing size in \"mpoolsize <size>\" line\n",
+                           fname, lineno );
+                       return( 1 );
+               }
+               lty->lty_mpsize = (size_t) atoi( argv[1] );
+               /*  we should at least have the suggested 128k  */
+               if ( lty->lty_mpsize < DEFAULT_DBCACHE_SIZE )
+                       lty->lty_mpsize = DEFAULT_DBCACHE_SIZE;
+
+       /* anything else */
+       } else {
+               fprintf( stderr,
+"%s: line %d: unknown directive \"%s\" in ldbm backend definition (ignored)\n",
+                   fname, lineno, argv[0] );
+       }
+
+       return 0;
+}
+
+
+int
+bdb2_back_config(
+    BackendInfo        *bi,
+    char       *fname,
+    int                lineno,
+    int                argc,
+    char       **argv
+)
+{
+       struct timeval  time1;
+       int             ret;
+
+       bdb2i_start_timing( bi, &time1 );
+
+       ret = bdb2i_back_config_internal( bi, fname, lineno, argc, argv );
+       bdb2i_stop_timing( bi, time1, "BE-CONFIG", NULL, NULL );
+
+       return( ret );
+}
+
+
 static int
 bdb2i_back_db_config_internal(
-    Backend    *be,
+    BackendDB  *be,
     char       *fname,
     int                lineno,
     int                argc,
@@ -22,7 +94,7 @@ bdb2i_back_db_config_internal(
        struct ldbminfo *li = (struct ldbminfo *) be->be_private;
 
        if ( li == NULL ) {
-               fprintf( stderr, "%s: line %d: ldbm backend info is null!\n",
+               fprintf( stderr, "%s: line %d: ldbm database info is null!\n",
                    fname, lineno );
                return( 1 );
        }
@@ -38,7 +110,7 @@ bdb2i_back_db_config_internal(
                li->li_directory = ch_strdup( argv[1] );
 
                li->li_nextid_file =
-                       ch_malloc( strlen(li->li_directory) + sizeof("/NEXTID") );
+                       ch_malloc( strlen(li->li_directory) + sizeof("/NEXTID") + 1 );
 
                strcpy(li->li_nextid_file, li->li_directory);
                strcat(li->li_nextid_file, "/NEXTID");
@@ -107,30 +179,21 @@ bdb2i_back_db_config_internal(
 
 int
 bdb2_back_db_config(
-    Backend    *be,
+    BackendDB  *be,
     char       *fname,
     int                lineno,
     int                argc,
     char       **argv
 )
 {
-       struct timeval  time1, time2;
-       char   *elapsed_time;
-       int    ret;
+       struct timeval  time1;
+       int             ret;
 
-       gettimeofday( &time1, NULL );
+       bdb2i_start_timing( be->bd_info, &time1 );
 
        ret = bdb2i_back_db_config_internal( be, fname, lineno, argc, argv );
 
-       if ( bdb2i_do_timing ) {
-
-               gettimeofday( &time2, NULL);
-               elapsed_time = bdb2i_elapsed( time1, time2 );
-               Debug( LDAP_DEBUG_ANY, "CONFIG elapsed=%s\n",
-                               elapsed_time, 0, 0 );
-               free( elapsed_time );
-
-       }
+       bdb2i_stop_timing( be->bd_info, time1, "DB-CONFIG", NULL, NULL );
 
        return( ret );
 }