mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-10 14:23:34 -05:00
initialize back-monitor only if configured (so resources get released at shutdown)
This commit is contained in:
parent
e88c4b48e3
commit
6495247869
1 changed files with 90 additions and 86 deletions
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue