initialize back-monitor only if configured (so resources get released at shutdown)

This commit is contained in:
Pierangelo Masarati 2005-11-14 19:28:28 +00:00
parent e88c4b48e3
commit 6495247869

View file

@ -970,11 +970,100 @@ int
monitor_back_initialize(
BackendInfo *bi )
{
monitor_subsys_t *ms;
static char *controls[] = {
LDAP_CONTROL_MANAGEDSAIT,
NULL
};
static ConfigTable monitorcfg[] = {
{ NULL, NULL, 0, 0, 0, ARG_IGNORED,
NULL, NULL, NULL, NULL }
};
static ConfigOCs monitorocs[] = {
{ "( OLcfgDbOc:4.1 "
"NAME 'olcMonitorConfig' "
"DESC 'Monitor backend configuration' "
"SUP olcDatabaseConfig "
")",
Cft_Database, monitorcfg },
{ NULL, 0, NULL }
};
int rc;
bi->bi_controls = controls;
bi->bi_init = 0;
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 = monitor_back_db_open;
bi->bi_db_close = 0;
bi->bi_db_destroy = monitor_back_db_destroy;
bi->bi_op_bind = monitor_back_bind;
bi->bi_op_unbind = 0;
bi->bi_op_search = monitor_back_search;
bi->bi_op_compare = monitor_back_compare;
bi->bi_op_modify = monitor_back_modify;
bi->bi_op_modrdn = 0;
bi->bi_op_add = 0;
bi->bi_op_delete = 0;
bi->bi_op_abandon = 0;
bi->bi_extended = 0;
bi->bi_entry_release_rw = 0;
bi->bi_chk_referrals = 0;
bi->bi_operational = monitor_back_operational;
/*
* hooks for slap tools
*/
bi->bi_tool_entry_open = 0;
bi->bi_tool_entry_close = 0;
bi->bi_tool_entry_first = 0;
bi->bi_tool_entry_next = 0;
bi->bi_tool_entry_get = 0;
bi->bi_tool_entry_put = 0;
bi->bi_tool_entry_reindex = 0;
bi->bi_tool_sync = 0;
bi->bi_tool_dn2id_get = 0;
bi->bi_tool_id2entry_get = 0;
bi->bi_tool_entry_modify = 0;
bi->bi_connection_init = 0;
bi->bi_connection_destroy = 0;
/*
* configuration objectClasses (fake)
*/
bi->bi_cf_ocs = monitorocs;
rc = config_register_schema( monitorcfg, monitorocs );
if ( rc ) {
return rc;
}
return 0;
}
int
monitor_back_db_init(
BackendDB *be )
{
int rc;
struct berval dn = BER_BVC( SLAPD_MONITOR_DN ),
pdn,
ndn;
BackendDB *be2;
monitor_subsys_t *ms;
monitor_info_t *mi = &monitor_info;
int i;
const char *text;
@ -1252,78 +1341,6 @@ monitor_back_initialize(
offsetof(monitor_info_t, mi_ad_monitorRuntimeConfig) },
{ NULL, NULL, 0, -1 }
};
static ConfigTable monitorcfg[] = {
{ NULL, NULL, 0, 0, 0, ARG_IGNORED,
NULL, NULL, NULL, NULL }
};
static ConfigOCs monitorocs[] = {
{ "( OLcfgDbOc:4.1 "
"NAME 'olcMonitorConfig' "
"DESC 'Monitor backend configuration' "
"SUP olcDatabaseConfig "
")",
Cft_Database, monitorcfg },
{ NULL, 0, NULL }
};
int rc;
bi->bi_controls = controls;
bi->bi_init = 0;
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 = monitor_back_db_open;
bi->bi_db_close = 0;
bi->bi_db_destroy = monitor_back_db_destroy;
bi->bi_op_bind = monitor_back_bind;
bi->bi_op_unbind = 0;
bi->bi_op_search = monitor_back_search;
bi->bi_op_compare = monitor_back_compare;
bi->bi_op_modify = monitor_back_modify;
bi->bi_op_modrdn = 0;
bi->bi_op_add = 0;
bi->bi_op_delete = 0;
bi->bi_op_abandon = 0;
bi->bi_extended = 0;
bi->bi_entry_release_rw = 0;
bi->bi_chk_referrals = 0;
bi->bi_operational = monitor_back_operational;
/*
* hooks for slap tools
*/
bi->bi_tool_entry_open = 0;
bi->bi_tool_entry_close = 0;
bi->bi_tool_entry_first = 0;
bi->bi_tool_entry_next = 0;
bi->bi_tool_entry_get = 0;
bi->bi_tool_entry_put = 0;
bi->bi_tool_entry_reindex = 0;
bi->bi_tool_sync = 0;
bi->bi_tool_dn2id_get = 0;
bi->bi_tool_id2entry_get = 0;
bi->bi_tool_entry_modify = 0;
bi->bi_connection_init = 0;
bi->bi_connection_destroy = 0;
/*
* configuration objectClasses (fake)
*/
bi->bi_cf_ocs = monitorocs;
rc = config_register_schema( monitorcfg, monitorocs );
if ( rc ) {
return rc;
}
/*
* register subsys
@ -1423,19 +1440,6 @@ monitor_back_initialize(
((ObjectClass **)&(((char *)mi)[ moc[ i ].offset ]))[ 0 ] = Oc;
}
return 0;
}
int
monitor_back_db_init(
BackendDB *be )
{
int rc;
struct berval dn = BER_BVC( SLAPD_MONITOR_DN ),
pdn,
ndn;
BackendDB *be2;
/*
* database monitor can be defined once only
*/