]> code.citadel.org Git - citadel.git/blobdiff - citadel/citserver.c
* Reference count adjustments are now deferred by queuing
[citadel.git] / citadel / citserver.c
index e86b1e1bfcec12ff3ea038eee08b18e8700af111..54e57695dad4f037396fe53cbd0cda2c5747a031 100644 (file)
@@ -109,27 +109,6 @@ void master_startup(void) {
                 lputroom(&qrbuf);
         }
 
-       /*
-        * Create a room in which we can deposit "deleted" messages for
-        * deferred deletion.  This will silently fail if the room already
-        * exists, and that's perfectly ok, because we want it to exist.
-        */
-       create_room(DELETED_MSGS_ROOM, 3, "", 0, 1, 0, VIEW_MAILBOX);
-
-       /*
-        * Make sure it's set to be a "system room" so it doesn't show up
-        * in the <K>nown rooms list for Aides.  Also set the message expire
-        * policy to "by count, 1 message" so everything gets deleted all
-        * the time (we can't set it to 0 because that's invalid, so we keep
-        * a single message around).
-        */
-       if (lgetroom(&qrbuf, DELETED_MSGS_ROOM) == 0) {
-               qrbuf.QRflags2 |= QR2_SYSTEM;
-               qrbuf.QRep.expire_mode = EXPIRE_NUMMSGS;
-               qrbuf.QRep.expire_value = 1;
-               lputroom(&qrbuf);
-       }
-
        lprintf(CTDL_INFO, "Seeding the pseudo-random number generator...\n");
        urandom = fopen("/dev/urandom", "r");
        if (urandom != NULL) {
@@ -166,6 +145,9 @@ void master_cleanup(int exitcode) {
                (*fcn->h_function_pointer)();
        }
 
+       /* Close the AdjRefCount queue file */
+       AdjRefCount(-1, 0);
+
        /* Shut down the indexer thread */
        lprintf(CTDL_INFO, "Waiting for the indexer thread to shut down\n");
        pthread_join(indexer_thread_tid, NULL);
@@ -267,11 +249,12 @@ void cmd_info(void) {
        cprintf("0\n"); /* 1 = no, this server is not LDAP-enabled */
 #endif
 
-#ifdef ENABLE_AUTOLOGIN
-       cprintf("1\n"); /* "create new user" never works with autologin */
-#else
-       cprintf("%d\n", config.c_disable_newu); /* otherwise, site defined */
-#endif
+       if (config.c_auth_mode == 1) {
+               cprintf("1\n"); /* "create new user" never works with host auth */
+       }
+       else {
+               cprintf("%d\n", config.c_disable_newu); /* otherwise, site defined */
+       }
 
        cprintf("%s\n", config.c_default_cal_zone);
 
@@ -366,6 +349,7 @@ int is_public_client(void)
                                if ((strlen(public_clients) +
                                   strlen(addrbuf) + 2)
                                   < sizeof(public_clients)) {
+                                       strcat(public_clients, "|");
                                        strcat(public_clients, addrbuf);
                                }
                        }
@@ -1077,6 +1061,10 @@ void do_command_loop(void) {
                cmd_opna(&cmdbuf[5]);
        }
 
+       else if (!strncasecmp(cmdbuf,"DLAT",4)) {
+               cmd_dlat(&cmdbuf[5]);
+       }
+
        else if (!strncasecmp(cmdbuf,"INFO",4)) {
                cmd_info();
        }