]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/config.c
error message from be_entry_put tool backend function
[openldap] / servers / slapd / config.c
index 24a7ffce64f5188ac86420cafec810fca1fef379..7442953c7d19dc774b3a320dc9ee712a1f286664 100644 (file)
@@ -1,7 +1,7 @@
 /* config.c - configuration file handling routines */
 /* $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
  */
 
@@ -40,7 +40,6 @@ slap_mask_t           global_disallows = 0;
 slap_mask_t            global_requires = 0;
 slap_ssf_set_t global_ssf_set;
 char           *replogfile;
-int            global_lastmod = ON;
 int            global_idletimeout = 0;
 char   *global_host = NULL;
 char   *global_realm = NULL;
@@ -78,6 +77,7 @@ read_config( const char *fname )
        int rc;
        struct berval vals[2];
 
+       static int lastmod = ON;
        static BackendInfo *bi = NULL;
        static BackendDB        *be = NULL;
 
@@ -260,11 +260,11 @@ read_config( const char *fname )
                        if ( cargc < 2 ) {
 #ifdef NEW_LOGGING
                                LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
-                                          "%s: line %d: missing max in \"sockbuf_max_incoming <bytes\" line\n",
+                                          "%s: line %d: missing max in \"sockbuf_max_incoming <bytes>\" line\n",
                                           fname, lineno ));
 #else
                                Debug( LDAP_DEBUG_ANY,
-                                          "%s: line %d: missing max in \"sockbuf_max_incoming <bytes\" line\n",
+                                          "%s: line %d: missing max in \"sockbuf_max_incoming <bytes>\" line\n",
                                    fname, lineno, 0 );
 #endif
 
@@ -842,7 +842,7 @@ read_config( const char *fname )
                                    fname, lineno, 0 );
 #endif
                        } else {
-                               be->be_glueflags |= SLAP_GLUE_SUBORDINATE;
+                               be->be_flags |= SLAP_BFLAG_GLUE_SUBORDINATE;
                                num_subordinates++;
                        }
 
@@ -1055,7 +1055,7 @@ read_config( const char *fname )
 
                        tmp_be = select_backend( &nalias, 0, 0 );
                        free( nalias.bv_val );
-                       if ( tmp_be != be ) {
+                       if ( tmp_be && tmp_be != be ) {
 #ifdef NEW_LOGGING
                                LDAP_LOG(( "config", LDAP_LEVEL_INFO,
                                        "%s: line %d: suffixAlias served by a preceeding "
@@ -1092,7 +1092,7 @@ read_config( const char *fname )
 
                        tmp_be = select_backend( &naliased, 0, 0 );
                        free( naliased.bv_val );
-                       if ( tmp_be != be ) {
+                       if ( tmp_be && tmp_be != be ) {
 #ifdef NEW_LOGGING
                                LDAP_LOG(( "config", LDAP_LEVEL_INFO,
                                        "%s: line %d: suffixAlias derefs to a different backend "
@@ -1687,6 +1687,15 @@ read_config( const char *fname )
                                return( 1 );
                        }
                        if ( strcasecmp( cargv[1], "off" ) == 0 ) {
+#ifdef NEW_LOGGING
+                               LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
+                                       "%s: line %d: schema checking disabled! your mileage may vary!\n",
+                                       fname, lineno ));
+#else
+                               Debug( LDAP_DEBUG_ANY,
+                                       "%s: line %d: schema checking disabled! your mileage may vary!\n",
+                                   fname, lineno, 0 );
+#endif
                                global_schemacheck = 0;
                        } else {
                                global_schemacheck = 1;
@@ -1984,15 +1993,17 @@ read_config( const char *fname )
                                return( 1 );
                        }
                        if ( strcasecmp( cargv[1], "on" ) == 0 ) {
-                               if ( be )
-                                       be->be_lastmod = ON;
-                               else
-                                       global_lastmod = ON;
+                               if ( be ) {
+                                       be->be_flags &= ~SLAP_BFLAG_NOLASTMOD;
+                               } else {
+                                       lastmod = ON;
+                               }
                        } else {
-                               if ( be )
-                                       be->be_lastmod = OFF;
-                               else
-                                       global_lastmod = OFF;
+                               if ( be ) {
+                                       be->be_flags |= SLAP_BFLAG_NOLASTMOD;
+                               } else {
+                                       lastmod = OFF;
+                               }
                        }
 
                /* set idle timeout value */