#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;
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 );
"objectClass: %s\n"
"structuralObjectClass: %s\n"
"cn: Database %d\n"
- "description: This object contains the type of the database.\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,
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,
(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;
break;
}
}
- assert( on2 );
+ assert( on2 != NULL );
snprintf( buf, sizeof( buf ),
"cn=Overlay %d,%s",
j, ms_overlay->mss_dn.bv_val );
ber_str2bv( buf, 0, 0, &bv );
- attr_merge_normalize_one( e, mi->mi_ad_seeAlso,
+ attr_merge_normalize_one( e,
+ slap_schema.si_ad_seeAlso,
&bv, NULL );
}
}
j, ms_backend->mss_dn.bv_val );
bv.bv_val = buf;
bv.bv_len = strlen( buf );
- attr_merge_normalize_one( e, mi->mi_ad_seeAlso,
+ attr_merge_normalize_one( e,
+ slap_schema.si_ad_seeAlso,
&bv, NULL );
break;
}
break;
}
}
- assert( on2 );
+ assert( on2 != NULL );
snprintf( buf, sizeof( buf ),
"dn: cn=Overlay %d,cn=Database %d,%s\n"
"objectClass: %s\n"
"structuralObjectClass: %s\n"
"cn: Overlay %d\n"
- "description: This object contains the type of the overlay.\n"
"%s: %s\n"
"seeAlso: cn=Overlay %d,%s\n"
"creatorsName: %s\n"
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;