]> code.citadel.org Git - citadel.git/blobdiff - citadel/citserver.c
* There is now a dedicated thread for doing database checkpoints.
[citadel.git] / citadel / citserver.c
index 9240f4ac416d880513e944bf2841ea493169b5fb..85f593641318e9bfdc56e7f1c72cf0ea5401ce6d 100644 (file)
@@ -101,7 +101,7 @@ void master_startup(void) {
        check_ref_counts();
 
        lprintf(CTDL_INFO, "Creating base rooms (if necessary)\n");
-       create_room(BASEROOM,           0, "", 0, 1, 0, VIEW_BBS);
+       create_room(config.c_baseroom,  0, "", 0, 1, 0, VIEW_BBS);
        create_room(AIDEROOM,           3, "", 0, 1, 0, VIEW_BBS);
        create_room(SYSCONFIGROOM,      3, "", 0, 1, 0, VIEW_BBS);
        create_room(config.c_twitroom,  0, "", 0, 1, 0, VIEW_BBS);
@@ -148,6 +148,14 @@ void master_cleanup(int exitcode) {
                (*fcn->h_function_pointer)();
        }
 
+       /* Shut down the indexer thread */
+       lprintf(CTDL_INFO, "Waiting for the indexer thread to shut down\n");
+       pthread_join(indexer_thread_tid, NULL);
+
+       /* Shut down the checkpoint thread */
+       lprintf(CTDL_INFO, "Waiting for the checkpoint thread to shut down\n");
+       pthread_join(checkpoint_thread_tid, NULL);
+
        /* Close databases */
        lprintf(CTDL_INFO, "Closing databases\n");
        close_databases();
@@ -193,7 +201,6 @@ void RemoveContext (struct CitContext *con)
        lprintf(CTDL_DEBUG, "Calling logout(%d)\n", con->cs_pid);
        logout(con);
 
-       unlink(con->temp);
        lprintf(CTDL_NOTICE, "[%3d] Session ended.\n", con->cs_pid);
 
        /* If the client is still connected, blow 'em away. */
@@ -218,7 +225,7 @@ void cmd_info(void) {
        cprintf("%s\n", config.c_fqdn);
        cprintf("%s\n", CITADEL);
        cprintf("%d\n", REV_LEVEL);
-       cprintf("%s\n", config.c_bbs_city);
+       cprintf("%s\n", config.c_site_location);
        cprintf("%s\n", config.c_sysadm);
        cprintf("%d\n", SERVER_TYPE);
        cprintf("%s\n", config.c_moreprompt);
@@ -761,13 +768,12 @@ void begin_session(struct CitContext *con)
        strcpy(con->lastcmdname, "    ");
        strcpy(con->cs_clientname, "(unknown)");
        strcpy(con->curr_user, NLI);
-       strcpy(con->net_node,"");
+       strcpy(con->net_node, "");
        strcpy(con->fake_username, "");
        strcpy(con->fake_postname, "");
        strcpy(con->fake_hostname, "");
        strcpy(con->fake_roomname, "");
        generate_nonce(con);
-       safestrncpy(con->temp, tmpnam(NULL), sizeof con->temp);
        safestrncpy(con->cs_host, config.c_fqdn, sizeof con->cs_host);
        safestrncpy(con->cs_addr, "", sizeof con->cs_addr);
        con->cs_host[sizeof con->cs_host - 1] = 0;