]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/back-monitor.h
Merge remote-tracking branch 'origin/mdb.master'
[openldap] / servers / slapd / back-monitor / back-monitor.h
index cfb5b80d588162934f2be700cecf44b927dc29ff..310fef22ad35c29f2a2a7a8238d2a855d7ceb171 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2001-2007 The OpenLDAP Foundation.
+ * Copyright 2001-2012 The OpenLDAP Foundation.
  * Portions Copyright 2001-2003 Pierangelo Masarati.
  * All rights reserved.
  *
@@ -74,6 +74,8 @@ typedef struct monitor_entry_t {
        struct monitor_callback_t       *mp_cb;         /* callback sequence */
 } monitor_entry_t;
 
+struct entry_limbo_t;                  /* in init.c */
+
 typedef struct monitor_info_t {
 
        /*
@@ -128,6 +130,7 @@ typedef struct monitor_info_t {
        AttributeDescription    *mi_ad_monitorIsShadow;
        AttributeDescription    *mi_ad_monitorUpdateRef;
        AttributeDescription    *mi_ad_monitorRuntimeConfig;
+       AttributeDescription    *mi_ad_monitorSuperiorDN;
 
        /*
         * Generic description attribute
@@ -135,7 +138,7 @@ typedef struct monitor_info_t {
        AttributeDescription    *mi_ad_readOnly;
        AttributeDescription    *mi_ad_restrictedOperation;
 
-       void                    *mi_entry_limbo;
+       struct entry_limbo_t    *mi_entry_limbo;
 } monitor_info_t;
 
 /*
@@ -265,6 +268,8 @@ typedef struct monitor_subsys_t {
                                struct berval *ndn, Entry *, Entry ** );
        /* modify entry and subentries */
        int             ( *mss_modify )( Operation *, SlapReply *, Entry * );
+
+       void            *mss_private;
 } monitor_subsys_t;
 
 extern BackendDB *be_monitor;
@@ -286,9 +291,9 @@ typedef struct monitor_extra_t {
 
        int (*register_subsys)( monitor_subsys_t *ms );
        int (*register_backend)( BackendInfo *bi );
-       int (*register_database)( BackendDB *be );
+       int (*register_database)( BackendDB *be, struct berval *ndn_out );
        int (*register_overlay_info)( slap_overinst *on );
-       int (*register_overlay)( BackendDB *be );
+       int (*register_overlay)( BackendDB *be, slap_overinst *on, struct berval *ndn_out );
        int (*register_entry)( Entry *e, monitor_callback_t *cb,
                monitor_subsys_t *ms, unsigned long flags );
        int (*register_entry_parent)( Entry *e, monitor_callback_t *cb,
@@ -301,6 +306,14 @@ typedef struct monitor_extra_t {
        monitor_cbfunc *unregister_entry_parent;
        monitor_cbafunc *unregister_entry_attrs;
        monitor_cbfunc *unregister_entry_callback;
+       Entry * (*entry_stub)( struct berval *pdn,
+               struct berval *pndn,
+               struct berval *rdn,
+               ObjectClass *oc,
+               struct berval *create,
+               struct berval *modify );
+       monitor_entry_t * (*entrypriv_create)( void );
+       int (*register_subsys_late)( monitor_subsys_t *ms );
 } monitor_extra_t;
 
 LDAP_END_DECL