]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/back-monitor.h
coverity scan, fix typo
[openldap] / servers / slapd / back-monitor / back-monitor.h
index 115d0246789a8db3ff930e3178bb511935ff7710..cfb5b80d588162934f2be700cecf44b927dc29ff 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2001-2005 The OpenLDAP Foundation.
+ * Copyright 2001-2007 The OpenLDAP Foundation.
  * Portions Copyright 2001-2003 Pierangelo Masarati.
  * All rights reserved.
  *
@@ -33,16 +33,20 @@ LDAP_BEGIN_DECL
 #undef MONITOR_DEFINE_LABELEDURI
 
 typedef struct monitor_callback_t {
-       int                     (*mc_update)( Operation *op, Entry *e, void *priv );
+       int                             (*mc_update)( Operation *op, SlapReply *rs, Entry *e, void *priv );
                                                /* update callback
                                                   for user-defined entries */
-       int                     (*mc_modify)( Operation *op, Entry *e, void *priv );
+       int                             (*mc_modify)( Operation *op, SlapReply *rs, Entry *e, void *priv );
                                                /* modify callback
                                                   for user-defined entries */
-       int                     (*mc_free)( Entry *e, void *priv );
-                                               /* update callback
+       int                             (*mc_free)( Entry *e, void **priv );
+                                               /* delete callback
                                                   for user-defined entries */
-       void                    *mc_private;    /* opaque pointer to
+       void                            (*mc_dispose)( void **priv );
+                                               /* dispose callback
+                                                  to dispose of the callback
+                                                  private data itself */
+       void                            *mc_private;    /* opaque pointer to
                                                   private data */
        struct monitor_callback_t       *mc_next;
 } monitor_callback_t;
@@ -81,9 +85,9 @@ typedef struct monitor_info_t {
        /*
         * Config parameters
         */
-       struct berval           mi_l;
        struct berval           mi_startTime;           /* don't free it! */
        struct berval           mi_creatorsName;        /* don't free it! */
+       struct berval           mi_ncreatorsName;       /* don't free it! */
 
        /*
         * Specific schema entities
@@ -121,17 +125,13 @@ typedef struct monitor_info_t {
        AttributeDescription    *mi_ad_monitorConnectionPeerDomain;
        AttributeDescription    *mi_ad_monitorConnectionStartTime;
        AttributeDescription    *mi_ad_monitorConnectionActivityTime;
+       AttributeDescription    *mi_ad_monitorIsShadow;
+       AttributeDescription    *mi_ad_monitorUpdateRef;
+       AttributeDescription    *mi_ad_monitorRuntimeConfig;
 
        /*
         * Generic description attribute
         */
-       AttributeDescription    *mi_ad_description;
-       AttributeDescription    *mi_ad_seeAlso;
-       AttributeDescription    *mi_ad_l;
-#ifdef MONITOR_DEFINE_LABELEDURI
-       /* enable if si_ad_labeledURI is removed from slap_schema */
-       AttributeDescription    *mi_ad_labeledURI;
-#endif /* MONITOR_DEFINE_LABELEDURI */
        AttributeDescription    *mi_ad_readOnly;
        AttributeDescription    *mi_ad_restrictedOperation;
 
@@ -198,7 +198,7 @@ enum {
 #define SLAPD_MONITOR_OPS_DN   \
        SLAPD_MONITOR_OPS_RDN "," SLAPD_MONITOR_DN
 
-#define SLAPD_MONITOR_OVERLAY_NAME     "Overlay"
+#define SLAPD_MONITOR_OVERLAY_NAME     "Overlays"
 #define SLAPD_MONITOR_OVERLAY_RDN  \
        SLAPD_MONITOR_AT "=" SLAPD_MONITOR_OVERLAY_NAME
 #define SLAPD_MONITOR_OVERLAY_DN   \
@@ -245,6 +245,7 @@ typedef struct monitor_subsys_t {
        struct berval   mss_rdn;
        struct berval   mss_dn;
        struct berval   mss_ndn;
+       struct berval   mss_desc[ 3 ];
        int             mss_flags;
 #define MONITOR_F_OPENED       0x10000000U
 
@@ -255,13 +256,15 @@ typedef struct monitor_subsys_t {
 
        /* initialize entry and subentries */
        int             ( *mss_open )( BackendDB *, struct monitor_subsys_t *ms );
+       /* destroy structure */
+       int             ( *mss_destroy )( BackendDB *, struct monitor_subsys_t *ms );
        /* update existing dynamic entry and subentries */
-       int             ( *mss_update )( Operation *, Entry * );
+       int             ( *mss_update )( Operation *, SlapReply *, Entry * );
        /* create new dynamic subentries */
-       int             ( *mss_create )( Operation *,
+       int             ( *mss_create )( Operation *, SlapReply *,
                                struct berval *ndn, Entry *, Entry ** );
        /* modify entry and subentries */
-       int             ( *mss_modify )( Operation *, Entry * );
+       int             ( *mss_modify )( Operation *, SlapReply *, Entry * );
 } monitor_subsys_t;
 
 extern BackendDB *be_monitor;
@@ -269,42 +272,36 @@ extern BackendDB *be_monitor;
 /* increase this bufsize if entries in string form get too big */
 #define BACKMONITOR_BUFSIZE    8192
 
-extern int
-monitor_back_register_entry(
-       Entry                   *e,
-       monitor_callback_t      *cb );
-
-extern int
-monitor_back_register_entry_parent(
-       Entry                   *e,
-       monitor_callback_t      *cb,
-       struct berval           *base,
-       int                     scope,
-       struct berval           *filter );
-
-extern int
-monitor_filter2ndn(
-       struct berval           *base,
-       int                     scope,
-       struct berval           *filter,
-       struct berval           *ndn );
-
-extern int
-monitor_back_register_entry_attrs(
-       struct berval           *ndn_in,
-       Attribute               *a,
-       monitor_callback_t      *cb,
-       struct berval           *base,
-       int                     scope,
-       struct berval           *filter );
-
-extern int
-monitor_back_register_entry_callback(
-       struct berval           *ndn,
-       monitor_callback_t      *cb,
-       struct berval           *base,
-       int                     scope,
-       struct berval           *filter );
+typedef int (monitor_cbfunc)( struct berval *ndn, monitor_callback_t *cb,
+       struct berval *base, int scope, struct berval *filter );
+
+typedef int (monitor_cbafunc)( struct berval *ndn, Attribute *a,
+       monitor_callback_t *cb,
+       struct berval *base, int scope, struct berval *filter );
+
+typedef struct monitor_extra_t {
+       int (*is_configured)(void);
+       monitor_subsys_t * (*get_subsys)( const char *name );
+       monitor_subsys_t * (*get_subsys_by_dn)( struct berval *ndn, int sub );
+
+       int (*register_subsys)( monitor_subsys_t *ms );
+       int (*register_backend)( BackendInfo *bi );
+       int (*register_database)( BackendDB *be );
+       int (*register_overlay_info)( slap_overinst *on );
+       int (*register_overlay)( BackendDB *be );
+       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,
+               monitor_subsys_t *ms, unsigned long flags,
+               struct berval *base, int scope, struct berval *filter );
+       monitor_cbafunc *register_entry_attrs;
+       monitor_cbfunc *register_entry_callback;
+
+       int (*unregister_entry)( struct berval *ndn );
+       monitor_cbfunc *unregister_entry_parent;
+       monitor_cbafunc *unregister_entry_attrs;
+       monitor_cbfunc *unregister_entry_callback;
+} monitor_extra_t;
 
 LDAP_END_DECL