]> 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 94530f94377feb158b18d646db077e82928b9c68..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
  */
 
@@ -15,6 +15,9 @@
 
 #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
@@ -71,56 +74,6 @@ ldap_pvt_thread_mutex_t      replog_mutex;
 static const char* slap_name = NULL;
 int slapMode = SLAP_UNDEFINED_MODE;
 
-/*
- * all known control OIDs should be added to this list
- */
-char *slap_known_controls[] = {
-#ifdef LDAP_CONTROL_REFERRALS
-       LDAP_CONTROL_REFERRALS,
-#endif /* LDAP_CONTROL_REFERRALS */
-
-       LDAP_CONTROL_MANAGEDSAIT,
-
-#ifdef LDAP_CONTROL_SUBENTRIES
-       LDAP_CONTROL_SUBENTRIES,
-#endif /* LDAP_CONTROL_SUBENTRIES */
-
-       LDAP_CONTROL_NOOP,
-
-#ifdef LDAP_CONTROL_DUPENT_REQUEST
-       LDAP_CONTROL_DUPENT_REQUEST,
-#endif /* LDAP_CONTROL_DUPENT_REQUEST */
-
-#ifdef LDAP_CONTROL_DUPENT_RESPONSE
-       LDAP_CONTROL_DUPENT_RESPONSE,
-#endif /* LDAP_CONTROL_DUPENT_RESPONSE */
-
-#ifdef LDAP_CONTROL_DUPENT_ENTRY
-       LDAP_CONTROL_DUPENT_ENTRY,
-#endif /* LDAP_CONTROL_DUPENT_ENTRY */
-
-       LDAP_CONTROL_PAGEDRESULTS,
-
-#ifdef LDAP_CONTROL_SORTREQUEST
-       LDAP_CONTROL_SORTREQUEST,
-#endif /* LDAP_CONTROL_SORTREQUEST */
-
-#ifdef LDAP_CONTROL_SORTRESPONSE
-       LDAP_CONTROL_SORTRESPONSE,
-#endif /* LDAP_CONTROL_SORTRESPONSE */
-
-#ifdef LDAP_CONTROL_VLVREQUEST
-       LDAP_CONTROL_VLVREQUEST,
-#endif /* LDAP_CONTROL_VLVREQUEST */
-
-#ifdef LDAP_CONTROL_VLVRESPONSE
-       LDAP_CONTROL_VLVRESPONSE,
-#endif /* LDAP_CONTROL_VLVRESPONSE */
-
-       LDAP_CONTROL_VALUESRETURNFILTER,
-       NULL
-};
-
 int
 slap_init( int mode, const char *name )
 {
@@ -191,6 +144,7 @@ slap_init( int mode, const char *name )
                        if( rc == 0 ) {
                                rc = backend_init( );
                        }
+
                        break;
 
                default:
@@ -224,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, 
@@ -246,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;
 }