From 10ac49968e87cf5845c68a11839fd57cb016c746 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 17 Jul 2023 12:25:20 -0900 Subject: [PATCH] citserver: regenerate secondary indices if the regenerate_secondary_indices config key is set to nonzero --- citadel/server/modules/upgrade/serv_upgrade.c | 33 +++++++------------ citadel/server/modules_init.h | 1 + citadel/server/server_main.c | 8 +++++ 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/citadel/server/modules/upgrade/serv_upgrade.c b/citadel/server/modules/upgrade/serv_upgrade.c index b06e19d19..2c662245f 100644 --- a/citadel/server/modules/upgrade/serv_upgrade.c +++ b/citadel/server/modules/upgrade/serv_upgrade.c @@ -520,13 +520,6 @@ void pre_startup_upgrades(void) { if (oldver == 0) { create_default_admin_account(); } - - // Setting this key to nonzero causes the server to regenerate all data that can be derived - // from other tables: usersbynumber, directory, fulltext. - // The import utility (ctdlload) sets this key. - if (CtdlGetConfigInt("regenerate_secondary_indices") != 0) { - regenerate_secondary_indices(); - } } @@ -538,23 +531,19 @@ void post_startup_upgrades(void) { if (oldver < REV_LEVEL) { syslog(LOG_WARNING, "Running post-startup database upgrades."); - } - else { - return; - } - - if ((oldver > 000) && (oldver < 912)) { - move_inet_addrs_from_vcards_to_user_records(); - } - if ((oldver > 000) && (oldver < 922)) { - ProcessOldStyleAdjRefCountQueue(); - } - - if ((oldver > 000) && (oldver < 930)) { - migrate_inbox_filter_msgnums(); + if ((oldver > 000) && (oldver < 912)) { + move_inet_addrs_from_vcards_to_user_records(); + } + + if ((oldver > 000) && (oldver < 922)) { + ProcessOldStyleAdjRefCountQueue(); + } + + if ((oldver > 000) && (oldver < 930)) { + migrate_inbox_filter_msgnums(); + } } - } diff --git a/citadel/server/modules_init.h b/citadel/server/modules_init.h index c29f74cd3..85139ba15 100644 --- a/citadel/server/modules_init.h +++ b/citadel/server/modules_init.h @@ -17,6 +17,7 @@ extern size_t nSizErrmsg; void initialize_modules (int threading); void pre_startup_upgrades(void); +void regenerate_secondary_indices(void); char *ctdl_module_init_control(void); char *ctdl_module_init_euidindex(void); char *ctdl_module_init_msgbase(void); diff --git a/citadel/server/server_main.c b/citadel/server/server_main.c index 294df3a5c..4858c85ea 100644 --- a/citadel/server/server_main.c +++ b/citadel/server/server_main.c @@ -228,6 +228,14 @@ int main(int argc, char **argv) { syslog(LOG_INFO, "main: upgrading modules"); // Run any upgrade entry points pre_startup_upgrades(); + // Setting this key to nonzero causes the server to regenerate all data that can be derived + // from other tables: usersbynumber, directory, fulltext. + // The import utility (ctdlload) sets this key. + if (CtdlGetConfigInt("regenerate_secondary_indices") != 0) { + regenerate_secondary_indices(); + } + + // Load the user for the masterCC or create them if they don't exist if (CtdlGetUser(&masterCC.user, "SYS_Citadel")) { // User doesn't exist. We can't use create user here as the user number needs to be 0 -- 2.39.2