]> code.citadel.org Git - citadel.git/blobdiff - citadel/database.c
These are the changes to eliminate most of the arbitrary limits in the
[citadel.git] / citadel / database.c
index d81726affdfe0b9645c38c36c42151dd2927cc7d..792a6fd06c04672f20e711ab53c3eb1e70389198 100644 (file)
@@ -42,15 +42,16 @@ void defrag_databases() {
        gdbm_reorganize(gdbms[CDB_MSGMAIN]);
        end_critical_section(S_MSGMAIN);
 
-       /* defrag the user file */
+       /* defrag the user file and mailboxes */
        begin_critical_section(S_USERSUPP);
        gdbm_reorganize(gdbms[CDB_USERSUPP]);
+       gdbm_reorganize(gdbms[CDB_MAILBOXES]);
        end_critical_section(S_USERSUPP);
 
-       /* defrag the room files */
+       /* defrag the room files and message lists */
        begin_critical_section(S_QUICKROOM);
        gdbm_reorganize(gdbms[CDB_QUICKROOM]);
-       gdbm_reorganize(gdbms[CDB_FULLROOM]);
+       gdbm_reorganize(gdbms[CDB_MSGLISTS]);
        end_critical_section(S_QUICKROOM);
 
        /* defrag the floor table */
@@ -68,40 +69,47 @@ void open_databases() {
        int a;
 
        gdbms[CDB_MSGMAIN] = gdbm_open("msgmain.gdbm", 8192,
-               GDBM_WRCREAT, 0700, NULL);
+               GDBM_WRCREAT, 0600, NULL);
        if (gdbms[CDB_MSGMAIN] == NULL) {
                lprintf(2, "Cannot open msgmain: %s\n",
                        gdbm_strerror(gdbm_errno));
                }
 
        gdbms[CDB_USERSUPP] = gdbm_open("usersupp.gdbm", 0,
-               GDBM_WRCREAT, 0700, NULL);
+               GDBM_WRCREAT, 0600, NULL);
        if (gdbms[CDB_USERSUPP] == NULL) {
                lprintf(2, "Cannot open usersupp: %s\n",
                        gdbm_strerror(gdbm_errno));
                }
 
        gdbms[CDB_QUICKROOM] = gdbm_open("quickroom.gdbm", 0,
-               GDBM_WRCREAT, 0700, NULL);
+               GDBM_WRCREAT, 0600, NULL);
        if (gdbms[CDB_QUICKROOM] == NULL) {
                lprintf(2, "Cannot open quickroom: %s\n",
                        gdbm_strerror(gdbm_errno));
                }
 
-       gdbms[CDB_FULLROOM] = gdbm_open("fullroom.gdbm", 0,
-               GDBM_WRCREAT, 0700, NULL);
-       if (gdbms[CDB_FULLROOM] == NULL) {
-               lprintf(2, "Cannot open fullroom: %s\n",
-                       gdbm_strerror(gdbm_errno));
-               }
-
        gdbms[CDB_FLOORTAB] = gdbm_open("floortab.gdbm", 0,
-               GDBM_WRCREAT, 0700, NULL);
+               GDBM_WRCREAT, 0600, NULL);
        if (gdbms[CDB_FLOORTAB] == NULL) {
                lprintf(2, "Cannot open floortab: %s\n",
                        gdbm_strerror(gdbm_errno));
                }
 
+       gdbms[CDB_MSGLISTS] = gdbm_open("msglists.gdbm", 0,
+               GDBM_WRCREAT, 0600, NULL);
+       if (gdbms[CDB_MSGLISTS] == NULL) {
+               lprintf(2, "Cannot open msglists: %s\n",
+                       gdbm_strerror(gdbm_errno));
+               }
+
+       gdbms[CDB_MAILBOXES] = gdbm_open("mailboxes.gdbm", 0,
+               GDBM_WRCREAT, 0600, NULL);
+       if (gdbms[CDB_MAILBOXES] == NULL) {
+               lprintf(2, "Cannot open mailboxes: %s\n",
+                       gdbm_strerror(gdbm_errno));
+               }
+
        for (a=0; a<MAXKEYS; ++a) {
                dtkey[a].dsize = 0;
                dtkey[a].dptr = NULL;