* want if mkdir, chmod, chown fail...
[citadel.git] / citadel / database.c
index 7c157e4c2c155522cd03d12f153fe1a2d1ebf880..4c049f60e86edd77653566d72234290adc6ab613 100644 (file)
@@ -301,10 +301,21 @@ void open_databases(void)
         * Silently try to create the database subdirectory.  If it's
         * already there, no problem.
         */
-       mkdir(ctdl_data_dir, 0700);
-       chmod(ctdl_data_dir, 0700);
-       chown(ctdl_data_dir, CTDLUID, (-1));
-
+       if ((mkdir(ctdl_data_dir, 0700) != 0) && (errno != EEXIST)){
+               CtdlLogPrintf(CTDL_EMERG, 
+                             "unable to create database directory [%s]: %s", 
+                             ctdl_data_dir, strerror(errno));
+       }
+       if (chmod(ctdl_data_dir, 0700) != 0){
+               CtdlLogPrintf(CTDL_EMERG, 
+                             "unable to set database directory accessrights [%s]: %s", 
+                             ctdl_data_dir, strerror(errno));
+       }
+       if (chown(ctdl_data_dir, CTDLUID, (-1)) != 0){
+               CtdlLogPrintf(CTDL_EMERG, 
+                             "unable to set the owner for [%s]: %s", 
+                             ctdl_data_dir, strerror(errno));
+       }
        CtdlLogPrintf(CTDL_DEBUG, "bdb(): Setting up DB environment\n");
        db_env_set_func_yield(sched_yield);
        ret = db_env_create(&dbenv, 0);