]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/database.c
Destroy monitor_info.mi_cache_mutex
[openldap] / servers / slapd / back-monitor / database.c
index f6f58134d4f43bd4cf0547b1d25dffc2badc7929..ae234a143b702e1c83ff529d6d5f0e3b396ab62b 100644 (file)
@@ -54,6 +54,12 @@ static int monitor_back_add_plugin( monitor_info_t *mi, Backend *be, Entry *e );
 #define PATH_MAX       4095
 #endif /* ! PATH_MAX */
 
+static int
+monitor_subsys_database_modify(
+       Operation       *op,
+       SlapReply       *rs,
+       Entry           *e );
+
 static struct restricted_ops_t {
        struct berval   op;
        unsigned int    tag;
@@ -129,6 +135,8 @@ monitor_subsys_database_init(
 
        assert( be != NULL );
 
+       ms->mss_modify = monitor_subsys_database_modify;
+
        mi = ( monitor_info_t * )be->be_private;
 
        ms_backend = monitor_back_get_subsys( SLAPD_MONITOR_BACKEND_NAME );
@@ -196,17 +204,20 @@ monitor_subsys_database_init(
                                "structuralObjectClass: %s\n"
                                "cn: Database %d\n"
                                "%s: %s\n"
+                               "%s: %s\n"
                                "creatorsName: %s\n"
                                "modifiersName: %s\n"
                                "createTimestamp: %s\n"
                                "modifyTimestamp: %s\n",
                                i,
-                               ms->mss_dn.bv_val,
+                                       ms->mss_dn.bv_val,
                                mi->mi_oc_monitoredObject->soc_cname.bv_val,
                                mi->mi_oc_monitoredObject->soc_cname.bv_val,
                                i,
                                mi->mi_ad_monitoredInfo->ad_cname.bv_val,
-                               bi->bi_type,
+                                       bi->bi_type,
+                               mi->mi_ad_monitorIsShadow->ad_cname.bv_val,
+                                       SLAP_SHADOW( be ) ? slap_true_bv.bv_val : slap_false_bv.bv_val,
                                mi->mi_creatorsName.bv_val,
                                mi->mi_creatorsName.bv_val,
                                mi->mi_startTime.bv_val,
@@ -221,7 +232,7 @@ monitor_subsys_database_init(
                        return( -1 );
                }
                
-               if ( SLAP_MONITOR(be) ) {
+               if ( SLAP_MONITOR( be ) ) {
                        attr_merge( e, slap_schema.si_ad_monitorContext,
                                        be->be_suffix, be->be_nsuffix );
                        attr_merge( e_database, slap_schema.si_ad_monitorContext,
@@ -244,6 +255,11 @@ monitor_subsys_database_init(
                (void)init_readOnly( mi, e, be->be_restrictops );
                (void)init_restrictedOperation( mi, e, be->be_restrictops );
 
+               if ( SLAP_SHADOW( be ) && be->be_update_refs ) {
+                       attr_merge_normalize( e, mi->mi_ad_monitorUpdateRef,
+                                       be->be_update_refs, NULL );
+               }
+
                if ( oi != NULL ) {
                        slap_overinst   *on = oi->oi_list,
                                        *on1 = on;
@@ -272,7 +288,7 @@ monitor_subsys_database_init(
                                                break;
                                        }
                                }
-                               assert( on2 );
+                               assert( on2 != NULL );
 
                                snprintf( buf, sizeof( buf ), 
                                        "cn=Overlay %d,%s", 
@@ -421,7 +437,7 @@ monitor_subsys_database_init(
                                                break;
                                        }
                                }
-                               assert( on2 );
+                               assert( on2 != NULL );
 
                                snprintf( buf, sizeof( buf ),
                                                "dn: cn=Overlay %d,cn=Database %d,%s\n"
@@ -537,12 +553,11 @@ value_mask( BerVarray v, slap_mask_t cur, slap_mask_t *delta )
        return LDAP_SUCCESS;
 }
 
-int
+static int
 monitor_subsys_database_modify(
        Operation       *op,
        SlapReply       *rs,
-       Entry           *e
-)
+       Entry           *e )
 {
        monitor_info_t  *mi = (monitor_info_t *)op->o_bd->be_private;
        int             rc = LDAP_OTHER;