open_databases();
/* Load site-specific configuration */
- syslog(LOG_INFO, "Loading citadel.config");
- get_config();
+ syslog(LOG_INFO, "Initializing configuration system");
+ initialize_config_system();
validate_config();
-
- syslog(LOG_INFO, "Acquiring control record");
- get_control();
- put_config();
+ migrate_legacy_control_record();
/* Check floor reference counts */
check_ref_counts();
syslog(LOG_INFO, "Creating base rooms (if necessary)\n");
- CtdlCreateRoom(config.c_baseroom, 0, "", 0, 1, 0, VIEW_BBS);
- CtdlCreateRoom(AIDEROOM, 3, "", 0, 1, 0, VIEW_BBS);
- CtdlCreateRoom(SYSCONFIGROOM, 3, "", 0, 1, 0, VIEW_BBS);
- CtdlCreateRoom(config.c_twitroom, 0, "", 0, 1, 0, VIEW_BBS);
+ CtdlCreateRoom(CtdlGetConfigStr("c_baseroom"), 0, "", 0, 1, 0, VIEW_BBS);
+ CtdlCreateRoom(AIDEROOM, 3, "", 0, 1, 0, VIEW_BBS);
+ CtdlCreateRoom(SYSCONFIGROOM, 3, "", 0, 1, 0, VIEW_BBS);
+ CtdlCreateRoom(CtdlGetConfigStr("c_twitroom"), 0, "", 0, 1, 0, VIEW_BBS);
/* The "Local System Configuration" room doesn't need to be visible */
if (CtdlGetRoomLock(&qrbuf, SYSCONFIGROOM) == 0) {
srand(seed);
srandom(seed);
- put_config();
-
syslog(LOG_DEBUG, "master_startup() finished\n");
}
/* Do system-dependent stuff */
sysdep_master_cleanup();
+
+ /* Close the configuration system */
+ shutdown_config_system();
/* Close databases */
syslog(LOG_INFO, "Closing databases\n");
}
}
- release_control();
-
/* Now go away. */
syslog(LOG_NOTICE, "citserver: Exiting with status %d\n", exitcode);
fflush(stdout); fflush(stderr);
safestrncpy(public_clientspos, LOCALHOSTSTR, sizeof public_clients);
public_clientspos += sizeof(LOCALHOSTSTR) - 1;
- if (hostname_to_dotted_quad(addrbuf, config.c_fqdn) == 0) {
+ if (hostname_to_dotted_quad(addrbuf, CtdlGetConfigStr("c_fqdn")) == 0) {
*(public_clientspos++) = '|';
paddr = &addrbuf[0];
while (!IsEmptyStr (paddr) &&
if (CC->nologin==1) {
cprintf("%d %s: Too many users are already online (maximum is %d)\n",
ERROR + MAX_SESSIONS_EXCEEDED,
- config.c_nodename, config.c_maxsessions
+ CtdlGetConfigStr("c_nodename"), CtdlGetConfigInt("c_maxsessions")
);
CC->kill_me = KILLME_MAX_SESSIONS_EXCEEDED;
}
else {
- cprintf("%d %s Citadel server ready.\n", CIT_OK, config.c_nodename);
+ cprintf("%d %s Citadel server ready.\n", CIT_OK, CtdlGetConfigStr("c_nodename"));
CC->can_receive_im = 1;
}
}
void citproto_begin_admin_session() {
CC->internal_pgm = 1;
- cprintf("%d %s Citadel server ADMIN CONNECTION ready.\n", CIT_OK, config.c_nodename);
+ cprintf("%d %s Citadel server ADMIN CONNECTION ready.\n", CIT_OK, CtdlGetConfigStr("c_nodename"));
}