X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fmain.c;h=4bded58a17e426031bad5659f962bc71110c302a;hb=refs%2Fheads%2Fprotodoc;hp=2c6f08d0d0ee5d79984a94600f58117560a65af5;hpb=5feb6be7188c594f4d2b9685db7f3fb0b584ea4a;p=doldaconnect.git diff --git a/daemon/main.c b/daemon/main.c index 2c6f08d..4bded58 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -304,11 +304,12 @@ pid_t forksess(uid_t user, struct authhandle *auth, void (*ccbfunc)(pid_t, int, close(i); } } - setpgrp(); + setpgid(0, 0); signal(SIGHUP, SIG_IGN); errno = 0; #ifdef HAVE_KEYUTILS keyctl_join_session_keyring(NULL); + keyctl_chown(KEY_SPEC_SESSION_KEYRING, pwent->pw_uid, pwent->pw_gid); #endif if((authopensess(auth)) != AUTH_SUCCESS) { @@ -384,6 +385,7 @@ int main(int argc, char **argv) struct child *child; double now; + now = ntime(); immsyslog = nofork = 0; syslogfac = LOG_DAEMON; configfile = NULL; @@ -459,7 +461,7 @@ int main(int argc, char **argv) preinit(0); if(configfile == NULL) { - if((configfile = findconfigfile()) == NULL) + if((configfile = findfile("doldacond.conf", NULL, 0)) == NULL) { flog(LOG_CRIT, "could not find a configuration file"); exit(1); @@ -493,6 +495,7 @@ int main(int argc, char **argv) fprintf(pfstream, "%i\n", getpid()); fclose(pfstream); } + flog(LOG_INFO, "startup took %f seconds", ntime() - now); running = 1; reinit = 0; while(running)