Officially declare war on LHFS
[citadel.git] / citadel / citserver.c
index 6e287a7067bf458ffee95f9839547bef03b47ecd..d1271e5f91772605979b3f992b7a7ef9e58b50bd 100644 (file)
@@ -1,7 +1,7 @@
 /* 
  * Main source module for the Citadel server
  *
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2021 by the citadel.org team
  *
  * This program is open source software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License, version 3.
@@ -54,12 +54,13 @@ void master_startup(void)
        syslog(LOG_INFO, "Checking directory access");
        if ((pw = getpwuid(ctdluid)) == NULL) {
                gid = getgid();
-       } else {
+       }
+       else {
                gid = pw->pw_gid;
        }
 
        if (create_run_directories(CTDLUID, gid) != 0) {
-               syslog(LOG_EMERG, "failed to access & create directories");
+               syslog(LOG_EMERG, "citserver: failed to access and create directories");
                exit(1);
        }
        syslog(LOG_INFO, "Opening databases");
@@ -71,6 +72,13 @@ void master_startup(void)
        validate_config();
        migrate_legacy_control_record();
 
+       // If we have an existing database that is older than version 928, reindex the user records.
+       // Unfortunately we cannot do this in serv_upgrade.c because it needs to happen VERY early during startup.
+       int existing_db = CtdlGetConfigInt("MM_hosted_upgrade_level");
+       if ( (existing_db > 0) && (existing_db < 928) ) {
+               ForEachUser(reindex_user_928, NULL);
+       }
+
        /* Check floor reference counts */
        check_ref_counts();
 
@@ -116,7 +124,6 @@ void master_startup(void)
  */
 int master_cleanup(int exitcode)
 {
-       struct CleanupFunctionHook *fcn;
        static int already_cleaning_up = 0;
 
        if (already_cleaning_up) {
@@ -126,11 +133,6 @@ int master_cleanup(int exitcode)
        }
        already_cleaning_up = 1;
 
-       /* Run any cleanup routines registered by loadable modules */
-       for (fcn = CleanupHookTable; fcn != NULL; fcn = fcn->next) {
-               (*fcn->h_function_pointer) ();
-       }
-
        /* Do system-dependent stuff */
        sysdep_master_cleanup();
 
@@ -138,7 +140,7 @@ int master_cleanup(int exitcode)
        shutdown_config_system();
 
        /* Close databases */
-       syslog(LOG_INFO, "Closing databases\n");
+       syslog(LOG_INFO, "citserver: closing databases");
        close_databases();
 
        /* If the operator requested a halt but not an exit, halt here. */
@@ -182,12 +184,12 @@ char CtdlCheckExpress(void)
 void citproto_begin_session()
 {
        if (CC->nologin == 1) {
-               cprintf("%d %s: Too many users are already online (maximum is %d)\n",
-                       ERROR + MAX_SESSIONS_EXCEEDED, CtdlGetConfigStr("c_nodename"), CtdlGetConfigInt("c_maxsessions")
+               cprintf("%d Too many users are already online (maximum is %d)\n",
+                       ERROR + MAX_SESSIONS_EXCEEDED, CtdlGetConfigInt("c_maxsessions")
                    );
                CC->kill_me = KILLME_MAX_SESSIONS_EXCEEDED;
        } else {
-               cprintf("%d %s Citadel server ready.\n", CIT_OK, CtdlGetConfigStr("c_nodename"));
+               cprintf("%d %s Citadel server ready.\n", CIT_OK, CtdlGetConfigStr("c_fqdn"));
                CC->can_receive_im = 1;
        }
 }
@@ -196,7 +198,7 @@ void citproto_begin_session()
 void citproto_begin_admin_session()
 {
        CC->internal_pgm = 1;
-       cprintf("%d %s Citadel server ADMIN CONNECTION ready.\n", CIT_OK, CtdlGetConfigStr("c_nodename"));
+       cprintf("%d %s Citadel server ADMIN CONNECTION ready.\n", CIT_OK, CtdlGetConfigStr("c_fqdn"));
 }