* Minor updates for directory service
[citadel.git] / citadel / database.c
index c9e4264bc4c5c97386ee24c11a7f724230293fcc..f4050722aee171b2dff9cdf8a59e369159bffc72 100644 (file)
@@ -95,6 +95,12 @@ void defrag_databases(void)
        gdbm_reorganize(gdbms[CDB_FLOORTAB]);
        end_critical_section(S_DATABASE);
        end_critical_section(S_FLOORTAB);
+
+       /* defrag the directory */
+       lprintf(7, "Defragmenting the directory\n");
+       begin_critical_section(S_DIRECTORY);
+       gdbm_reorganize(gdbms[CDB_DIRECTORY]);
+       end_critical_section(S_DIRECTORY);
 }
 
 
@@ -161,6 +167,13 @@ void open_databases(void)
                        gdbm_strerror(gdbm_errno));
                exit(1);
        }
+       gdbms[CDB_DIRECTORY] = gdbm_open("data/directory.gdbm", 0,
+                                       GDBM_WRCREAT, 0600, NULL);
+       if (gdbms[CDB_DIRECTORY] == NULL) {
+               lprintf(2, "Cannot open directory: %s\n",
+                       gdbm_strerror(gdbm_errno));
+               exit(1);
+       }
        /*
           end_critical_section(S_DATABASE);
         */