Messages in the Local System Configuration room are now
authorArt Cancro <ajc@citadel.org>
Mon, 25 Aug 2008 14:06:43 +0000 (14:06 +0000)
committerArt Cancro <ajc@citadel.org>
Mon, 25 Aug 2008 14:06:43 +0000 (14:06 +0000)
immune to the auto-purger.

citadel/modules/expire/serv_expire.c

index 6bdbbb3a48eb4b1ccd979289c3f6c5026b984817..ab82d2828cfa9708d35276f7fcec957d8f1e269f 100644 (file)
@@ -152,6 +152,10 @@ void GatherPurgeMessages(struct ctdlroom *qrbuf, void *data) {
        if (epbuf.expire_mode == EXPIRE_NEXTLEVEL) return;
        if (epbuf.expire_mode == EXPIRE_MANUAL) return;
 
+       /* Don't purge messages containing system configuration, dumbass. */
+       if (!strcasecmp(qrbuf->QRname, SYSCONFIGROOM)) return;
+
+       /* Ok, we got this far ... now let's see what's in the room */
         cdbfr = cdb_fetch(CDB_MSGLISTS, &qrbuf->QRnumber, sizeof(long));
 
         if (cdbfr != NULL) {
@@ -290,6 +294,7 @@ void DoPurgeRooms(struct ctdlroom *qrbuf, void *data) {
                if (qrbuf->QRflags & QR_PERMANENT) return;
                if (qrbuf->QRflags & QR_DIRECTORY) return;
                if (qrbuf->QRflags & QR_NETWORK) return;
+               if (qrbuf->QRflags2 & QR2_SYSTEM) return;
                if (!strcasecmp(qrbuf->QRname, SYSCONFIGROOM)) return;
                if (is_noneditable(qrbuf)) return;