]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/init.c
Berkeley DB 4.2 support (DB 4.2 required by default)
[openldap] / servers / slapd / init.c
index b860b3f673bdce6e7935f3aadc39a00100d44873..c1dcae2a8a7d1b4c411dce19d0e7cf4ee0292d97 100644 (file)
@@ -1,7 +1,7 @@
 /* init.c - initialize various things */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
 #include <ac/time.h>
 
 #include "slap.h"
+#include "lber_pvt.h"
+#ifdef LDAP_SLAPI
+#include "slapi.h"
+#endif
 
 /*
  * read-only global variables or variables only written by the listener
@@ -33,6 +37,10 @@ int          ldap_syslog_level = LOG_DEBUG;
 
 BerVarray default_referral = NULL;
 
+struct berval AllUser = BER_BVC( LDAP_ALL_USER_ATTRIBUTES );
+struct berval AllOper = BER_BVC( LDAP_ALL_OPERATIONAL_ATTRIBUTES );
+struct berval NoAttrs = BER_BVC( LDAP_NO_ATTRS );
+
 /*
  * global variables that need mutex protection
  */
@@ -136,6 +144,7 @@ slap_init( int mode, const char *name )
                        if( rc == 0 ) {
                                rc = backend_init( );
                        }
+
                        break;
 
                default:
@@ -169,12 +178,26 @@ int slap_startup( Backend *be )
 
        rc = backend_startup( be );
 
+#ifdef LDAP_SLAPI
+       if( rc == 0 ) {
+               Slapi_PBlock *pb = slapi_pblock_new();
+
+               if ( doPluginFNs( NULL, SLAPI_PLUGIN_START_FN, pb ) < 0 ) {
+                       rc = -1;
+               }
+               slapi_pblock_destroy( pb );
+       }
+#endif /* LDAP_SLAPI */
+
        return rc;
 }
 
 int slap_shutdown( Backend *be )
 {
        int rc;
+#ifdef LDAP_SLAPI
+       Slapi_PBlock *pb;
+#endif
 
 #ifdef NEW_LOGGING
        LDAP_LOG( OPERATION, CRIT, 
@@ -191,6 +214,12 @@ int slap_shutdown( Backend *be )
        /* let backends do whatever cleanup they need to do */
        rc = backend_shutdown( be ); 
 
+#ifdef LDAP_SLAPI
+       pb = slapi_pblock_new( );
+       (void) doPluginFNs( NULL, SLAPI_PLUGIN_CLOSE_FN, pb );
+       slapi_pblock_destroy( pb );
+#endif /* LDAP_SLAPI */
+
        return rc;
 }