Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Only set HOME, SHELL and PATH in multiuser sessions.
[doldaconnect.git]
/
daemon
/
main.c
diff --git
a/daemon/main.c
b/daemon/main.c
index
6124129
..
2848d41
100644
(file)
--- a/
daemon/main.c
+++ b/
daemon/main.c
@@
-1,6
+1,6
@@
/*
* Dolda Connect - Modular multiuser Direct Connect-style client
/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2004 Fredrik Tolf
(fredrik@dolda2000.com)
+ * Copyright (C) 2004 Fredrik Tolf
<fredrik@dolda2000.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-304,7
+304,7
@@
pid_t forksess(uid_t user, struct authhandle *auth, void (*ccbfunc)(pid_t, int,
close(i);
}
}
close(i);
}
}
- setpg
rp(
);
+ setpg
id(0, 0
);
signal(SIGHUP, SIG_IGN);
errno = 0;
#ifdef HAVE_KEYUTILS
signal(SIGHUP, SIG_IGN);
errno = 0;
#ifdef HAVE_KEYUTILS
@@
-340,12
+340,12
@@
pid_t forksess(uid_t user, struct authhandle *auth, void (*ccbfunc)(pid_t, int,
flog(LOG_WARNING, "could not setuid: %s", strerror(errno));
exit(127);
}
flog(LOG_WARNING, "could not setuid: %s", strerror(errno));
exit(127);
}
+ putenv(sprintf2("HOME=%s", pwent->pw_dir));
+ putenv(sprintf2("SHELL=%s", pwent->pw_shell));
+ putenv(sprintf2("PATH=%s/bin:/usr/local/bin:/bin:/usr/bin", pwent->pw_dir));
}
}
- putenv(sprintf2("HOME=%s", pwent->pw_dir));
- putenv(sprintf2("SHELL=%s", pwent->pw_shell));
putenv(sprintf2("USER=%s", pwent->pw_name));
putenv(sprintf2("LOGNAME=%s", pwent->pw_name));
putenv(sprintf2("USER=%s", pwent->pw_name));
putenv(sprintf2("LOGNAME=%s", pwent->pw_name));
- putenv(sprintf2("PATH=%s/bin:/usr/local/bin:/bin:/usr/bin", pwent->pw_dir));
chdir(pwent->pw_dir);
return(0);
}
chdir(pwent->pw_dir);
return(0);
}
@@
-385,6
+385,7
@@
int main(int argc, char **argv)
struct child *child;
double now;
struct child *child;
double now;
+ now = ntime();
immsyslog = nofork = 0;
syslogfac = LOG_DAEMON;
configfile = NULL;
immsyslog = nofork = 0;
syslogfac = LOG_DAEMON;
configfile = NULL;
@@
-460,7
+461,7
@@
int main(int argc, char **argv)
preinit(0);
if(configfile == NULL)
{
preinit(0);
if(configfile == NULL)
{
- if((configfile = findfile("doldacond.conf",
"doldacond",
NULL, 0)) == NULL)
+ if((configfile = findfile("doldacond.conf", NULL, 0)) == NULL)
{
flog(LOG_CRIT, "could not find a configuration file");
exit(1);
{
flog(LOG_CRIT, "could not find a configuration file");
exit(1);
@@
-494,6
+495,7
@@
int main(int argc, char **argv)
fprintf(pfstream, "%i\n", getpid());
fclose(pfstream);
}
fprintf(pfstream, "%i\n", getpid());
fclose(pfstream);
}
+ flog(LOG_INFO, "startup took %f seconds", ntime() - now);
running = 1;
reinit = 0;
while(running)
running = 1;
reinit = 0;
while(running)