X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-monitor%2Flog.c;h=6a390891d463c49949a3e2c02537464bc85c34cf;hb=63e843d2003ddf20f3725ad439991e769ffc792a;hp=2aa3fc04cc57ad36471ced46d4424dc52014d701;hpb=cb291bb940a697fb77ae1441a11a382eb5b7dea3;p=openldap diff --git a/servers/slapd/back-monitor/log.c b/servers/slapd/back-monitor/log.c index 2aa3fc04cc..6a390891d4 100644 --- a/servers/slapd/back-monitor/log.c +++ b/servers/slapd/back-monitor/log.c @@ -31,6 +31,17 @@ #include "ldif.h" #include "back-monitor.h" +static int +monitor_subsys_log_destroy( + BackendDB *be, + monitor_subsys_t *ms ); + +static int +monitor_subsys_log_modify( + Operation *op, + SlapReply *rs, + Entry *e ); + /* * log mutex */ @@ -76,11 +87,9 @@ monitor_subsys_log_init( monitor_info_t *mi; Entry *e; int i; - struct berval desc[] = { - BER_BVC("This entry allows to set the log level runtime."), - BER_BVC("Set the attribute 'managedInfo' to the desired log levels."), - BER_BVNULL - }; + + ms->mss_destroy = monitor_subsys_log_destroy; + ms->mss_modify = monitor_subsys_log_modify; ldap_pvt_thread_mutex_init( &monitor_log_mutex ); @@ -118,14 +127,28 @@ monitor_subsys_log_init( } } - attr_merge_normalize( e, mi->mi_ad_description, desc, NULL ); - monitor_cache_release( mi, e ); return( 0 ); } -int +static int +monitor_subsys_log_destroy( + BackendDB *be, + monitor_subsys_t *ms ) +{ + int i; + + for ( i = 0; int_2_level[ i ].i != 0; i++ ) { + if ( !BER_BVISNULL( &int_2_level[ i ].n ) ) { + ch_free( int_2_level[ i ].n.bv_val ); + } + } + + return 0; +} + +static int monitor_subsys_log_modify( Operation *op, SlapReply *rs, @@ -160,7 +183,7 @@ monitor_subsys_log_modify( continue; /* - * only the monitor description attribute can be modified + * only the "managedInfo" attribute can be modified */ } else if ( mod->sm_desc != mi->mi_ad_managedInfo ) { rc = rs->sr_err = LDAP_UNWILLING_TO_PERFORM; @@ -204,8 +227,8 @@ monitor_subsys_log_modify( } /* check that the entry still obeys the schema */ - rc = entry_schema_check( be_monitor, e, save_attrs, - &text, textbuf, sizeof( textbuf ) ); + rc = entry_schema_check( op, e, save_attrs, 0, + &text, textbuf, sizeof( textbuf ) ); if ( rc != LDAP_SUCCESS ) { rs->sr_err = rc; goto cleanup; @@ -324,7 +347,7 @@ add_values( Entry *e, Modification *mod, int *newlevel ) a = attr_find( e->e_attrs, mod->sm_desc ); if ( a != NULL ) { - /* "description" SHOULD have appropriate rules ... */ + /* "managedInfo" SHOULD have appropriate rules ... */ if ( mr == NULL || !mr->smr_match ) { return LDAP_INAPPROPRIATE_MATCHING; }