From 9ee916bdece9c226d74ee220fdecebdbca393759 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 29 Aug 2002 10:32:48 +0000 Subject: [PATCH] fix backend initialization (including ITS#2048) --- servers/slapd/back-monitor/external.h | 2 +- servers/slapd/back-monitor/init.c | 89 ++++++++++++--------------- 2 files changed, 41 insertions(+), 50 deletions(-) diff --git a/servers/slapd/back-monitor/external.h b/servers/slapd/back-monitor/external.h index deef56781d..48d4e446df 100644 --- a/servers/slapd/back-monitor/external.h +++ b/servers/slapd/back-monitor/external.h @@ -37,7 +37,7 @@ LDAP_BEGIN_DECL extern BI_init monitor_back_initialize; extern BI_db_init monitor_back_db_init; -extern BI_open monitor_back_open; +extern BI_db_open monitor_back_db_open; extern BI_config monitor_back_config; extern BI_db_config monitor_back_db_config; diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c index 240f64e111..04ce6664ca 100644 --- a/servers/slapd/back-monitor/init.c +++ b/servers/slapd/back-monitor/init.c @@ -37,6 +37,7 @@ #include #include "slap.h" +#include "lber_pvt.h" #include "back-monitor.h" /* @@ -51,7 +52,7 @@ BackendDB *be_monitor = NULL; struct monitorsubsys monitor_subsys[] = { { SLAPD_MONITOR_LISTENER, SLAPD_MONITOR_LISTENER_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_listener_init, NULL, /* update */ @@ -59,7 +60,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_DATABASE, SLAPD_MONITOR_DATABASE_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_database_init, NULL, /* update */ @@ -67,7 +68,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_BACKEND, SLAPD_MONITOR_BACKEND_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_backend_init, NULL, /* update */ @@ -75,7 +76,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_THREAD, SLAPD_MONITOR_THREAD_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, monitor_subsys_thread_init, monitor_subsys_thread_update, @@ -83,7 +84,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_SASL, SLAPD_MONITOR_SASL_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, NULL, /* init */ NULL, /* update */ @@ -91,7 +92,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_TLS, SLAPD_MONITOR_TLS_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, NULL, /* init */ NULL, /* update */ @@ -99,7 +100,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_CONN, SLAPD_MONITOR_CONN_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_VOLATILE_CH, monitor_subsys_conn_init, monitor_subsys_conn_update, @@ -107,7 +108,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_READW, SLAPD_MONITOR_READW_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, NULL, /* init */ monitor_subsys_readw_update, @@ -115,7 +116,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_WRITEW, SLAPD_MONITOR_WRITEW_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, NULL, /* init */ monitor_subsys_writew_update, @@ -123,7 +124,7 @@ struct monitorsubsys monitor_subsys[] = { NULL /* modify */ }, { SLAPD_MONITOR_LOG, SLAPD_MONITOR_LOG_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_NONE, monitor_subsys_log_init, NULL, /* update */ @@ -131,7 +132,7 @@ struct monitorsubsys monitor_subsys[] = { monitor_subsys_log_modify }, { SLAPD_MONITOR_OPS, SLAPD_MONITOR_OPS_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_ops_init, monitor_subsys_ops_update, @@ -139,7 +140,7 @@ struct monitorsubsys monitor_subsys[] = { NULL, /* modify */ }, { SLAPD_MONITOR_SENT, SLAPD_MONITOR_SENT_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_sent_init, monitor_subsys_sent_update, @@ -147,7 +148,7 @@ struct monitorsubsys monitor_subsys[] = { NULL, /* modify */ }, { SLAPD_MONITOR_TIME, SLAPD_MONITOR_TIME_NAME, - { 0L, NULL }, { 0L, NULL }, { 0L, NULL }, + BER_BVNULL, BER_BVNULL, BER_BVNULL, MONITOR_F_PERSISTENT_CH, monitor_subsys_time_init, monitor_subsys_time_update, @@ -156,6 +157,22 @@ struct monitorsubsys monitor_subsys[] = { }, { -1, NULL } }; +#ifdef SLAPD_MONITOR_DYNAMIC + +int +back_monitor_LTX_init_module( int argc, char *argv[] ) +{ + BackendInfo bi; + + memset( &bi, '\0', sizeof(bi) ); + bi.bi_type = "monitor"; + bi.bi_init = monitor_back_initialize; + backend_add( &bi ); + return 0; +} + +#endif /* SLAPD_MONITOR_DYNAMIC */ + int monitor_back_initialize( BackendInfo *bi @@ -170,14 +187,14 @@ monitor_back_initialize( bi->bi_controls = controls; bi->bi_init = 0; - bi->bi_open = monitor_back_open; + bi->bi_open = 0; bi->bi_config = monitor_back_config; bi->bi_close = 0; bi->bi_destroy = 0; bi->bi_db_init = monitor_back_db_init; bi->bi_db_config = monitor_back_db_config; - bi->bi_db_open = 0; + bi->bi_db_open = monitor_back_db_open; bi->bi_db_close = 0; bi->bi_db_destroy = monitor_back_db_destroy; @@ -449,46 +466,17 @@ monitor_back_db_init( } int -monitor_back_open( - BackendInfo *bi +monitor_back_db_open( + BackendDB *be ) { - BackendDB *be; struct monitorsubsys *ms; - struct berval dn = { sizeof(SLAPD_MONITOR_DN)-1, SLAPD_MONITOR_DN }; - struct berval ndn; - int rc; + + assert( be ); /* - * adds the monitor backend + * opens the monitor backend */ - rc = dnNormalize2( NULL, &dn, &ndn ); - if( rc != LDAP_SUCCESS ) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, CRIT, - "monitor DN \"" SLAPD_MONITOR_DN "\" is invalid\n" , 0, 0, 0); -#else - Debug( LDAP_DEBUG_ANY, - "monitor DN \"" SLAPD_MONITOR_DN "\" is invalid\n", - 0, 0, 0 ); -#endif - return( -1 ); - } - - be = select_backend( &ndn , 0, 0 ); - free( ndn.bv_val ); - - if ( be == NULL ) { -#ifdef NEW_LOGGING - LDAP_LOG( OPERATION, CRIT, - "unable to get monitor backend\n" , 0, 0, 0 ); -#else - Debug( LDAP_DEBUG_ANY, - "unable to get monitor backend\n", 0, 0, 0 ); -#endif - return( -1 ); - } - for ( ms = monitor_subsys; ms->mss_name != NULL; ms++ ) { if ( ms->mss_init && ( *ms->mss_init )( be ) ) { return( -1 ); @@ -522,6 +510,9 @@ monitor_back_db_config( char **argv ) { + /* + * eventually, will hold database specific configuration parameters + */ #ifdef NEW_LOGGING LDAP_LOG( CONFIG, INFO, "line %d of file '%s' will be ignored\n", lineno, fname, 0 ); -- 2.39.5