X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fserver_main.c;h=2d2309b09407bec9213a19b973a0376bdba84f40;hb=01cc19a4c2da27b4db0e980ccd3ca54d834319c8;hp=3c610aba915ae23e95de5a140df1216becc5f86d;hpb=9a7a7863409fb96e229a93471ec75346c472645d;p=citadel.git diff --git a/citadel/server_main.c b/citadel/server_main.c index 3c610aba9..2d2309b09 100644 --- a/citadel/server_main.c +++ b/citadel/server_main.c @@ -37,6 +37,7 @@ #include #include #include +#include #ifdef HAVE_PTHREAD_H #include #endif @@ -50,9 +51,15 @@ #include "citserver.h" #include "support.h" #include "config.h" +#include "control.h" #include "database.h" +#include "user_ops.h" #include "housekeeping.h" #include "tools.h" +#include "citadel_dirs.c" + +#include "modules_init.h" + #ifdef HAVE_SYS_SELECT_H #include @@ -71,21 +78,26 @@ int main(int argc, char **argv) { char facility[32]; int a, i; /* General-purpose variables */ - struct passwd *pw; + struct passwd pw, *pwp = NULL; + char pwbuf[SIZ]; int drop_root_perms = 1; size_t size; - + int relh=0; + int home=0; + char relhome[PATH_MAX]=""; + char ctdldir[PATH_MAX]=CTDLDIR; +#ifdef HAVE_RUN_DIR + struct stat filestats; +#endif + /* initialize the master context */ InitializeMasterCC(); - /* set default syslog facility */ - syslog_facility = LOG_DAEMON; - /* parse command-line arguments */ for (a=1; apw_name, pw->pw_gid); - if (setgid(pw->pw_gid)) - lprintf(CTDL_CRIT, "setgid(%ld): %s\n", (long)pw->pw_gid, + initgroups(pw.pw_name, pw.pw_gid); + if (setgid(pw.pw_gid)) + lprintf(CTDL_CRIT, "setgid(%ld): %s\n", (long)pw.pw_gid, strerror(errno)); } lprintf(CTDL_INFO, "Changing uid to %ld\n", (long)CTDLUID); @@ -243,7 +300,7 @@ int main(int argc, char **argv) end_critical_section(S_WORKER_LIST); /* Create the indexer thread. */ - create_indexer_thread(); + create_maintenance_threads(); /* This thread is now useless. It can't be turned into a worker * thread because its stack is too small, but it can't be killed