]> code.citadel.org Git - citadel.git/blobdiff - citadel/citserver.c
Fix debian init script so it works with systemd.
[citadel.git] / citadel / citserver.c
index 18e0112487d70c1d98458a30c6536364714681a7..4a1070b23563876a03ca5b84c10951497888665f 100644 (file)
@@ -117,12 +117,26 @@ void master_startup(void) {
        FILE *urandom;
        struct ctdlroom qrbuf;
        int rv;
+       struct passwd *pw;
+       gid_t gid;
        
        syslog(LOG_DEBUG, "master_startup() started\n");
        time(&server_startup_time);
        get_config();
+       validate_config();
 
-       syslog(LOG_INFO, "Opening databases\n");
+       syslog(LOG_INFO, "Checking directory access");
+       if ((pw = getpwuid(CTDLUID)) == NULL) {
+               gid = getgid();
+       } else {
+               gid = pw->pw_gid;
+       }
+
+       if (create_run_directories(CTDLUID, gid) != 0) {
+               syslog(LOG_EMERG, "failed to access & create directories");
+               exit(1);
+       }
+       syslog(LOG_INFO, "Opening databases");
        open_databases();
        check_ref_counts();