]> 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 267042d8ee21a16cf2dda0fbb8951efa09ccc5fb..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 );
@@ -247,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;
@@ -275,7 +288,7 @@ monitor_subsys_database_init(
                                                break;
                                        }
                                }
-                               assert( on2 );
+                               assert( on2 != NULL );
 
                                snprintf( buf, sizeof( buf ), 
                                        "cn=Overlay %d,%s", 
@@ -424,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"
@@ -540,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;