]> git.sur5r.net Git - openldap/commitdiff
initialize back-monitor only if configured (so resources get released at shutdown)
authorPierangelo Masarati <ando@openldap.org>
Mon, 14 Nov 2005 19:28:28 +0000 (19:28 +0000)
committerPierangelo Masarati <ando@openldap.org>
Mon, 14 Nov 2005 19:28:28 +0000 (19:28 +0000)
servers/slapd/back-monitor/init.c

index a13056cdf682f0bf3569bc460d9b38eb18ad9995..1f6a5777f5cc73f4d497ee34d5f6dc8ac2ca04cc 100644 (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
         */