aboutsummaryrefslogtreecommitdiff
path: root/src/progman.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-11-24 13:38:52 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-11-24 14:04:31 +0200
commite6772c4d68849cfdb4547a59bc51cb6dd0acd2c6 (patch)
tree72c0baa79455c9008df3f137a11117772b321a52 /src/progman.c
parent68796f86fe6abae13debf253c0e16b4bac9c1bca (diff)
downloadpies-e6772c4d68849cfdb4547a59bc51cb6dd0acd2c6.tar.gz
pies-e6772c4d68849cfdb4547a59bc51cb6dd0acd2c6.tar.bz2
Implement parsing of inetd.conf files.
* src/Makefile.am (pies_SOURCES): Add inetd.c. * src/inetd.c: New file. * src/pies.c (inetd_mode): New global. (str_to_socket_type): New function. (_cb_socket_type): Use str_to_socket_type. (_cm_include_meta1): Rename to _cb_include_meta1. (_cb_include_inetd): New function. (pies_keywords): New keyword "include-inetd". (options): New option --inetd. (main): Handle inetd mode. * src/pies.h (str_to_socket_type): New proto. (disable_socket, enable_socket): Fix return type. * src/progman.c (redirect_to_file): Avoid coredump on privs.user == NULL. (open_redirector,env_setup) (progman_start,run_command): Remove unneeded variable. (progman_start): Fix diagnostic message. * src/socket.c (disable_socket, enable_socket): Fix return type. Do nothing if fd < 0. * src/userprivs.c (switch_to_privs): Allow to pass uid==0.
Diffstat (limited to 'src/progman.c')
-rw-r--r--src/progman.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/progman.c b/src/progman.c
index 85a5068..227b438 100644
--- a/src/progman.c
+++ b/src/progman.c
@@ -382,8 +382,8 @@ redirect_to_file (struct prog *master, int stream)
return -1;
}
/* Fix file ownership */
- pw = getpwnam (master->v.p.comp->privs.user);
- if (pw)
+ if (master->v.p.comp->privs.user
+ && (pw = getpwnam (master->v.p.comp->privs.user)) != NULL)
chown (master->v.p.comp->redir[stream].v.file, pw->pw_uid, pw->pw_gid);
return fd;
}
@@ -409,7 +409,7 @@ open_redirector (struct prog *master, int stream)
char *buf = NULL;
size_t size = 0;
pid_t pid;
- int i, prio;
+ int prio;
char *tag;
fd_set fdset;
@@ -613,7 +613,6 @@ env_setup (char **env)
static void
prog_start (struct prog *prog)
{
- int i;
pid_t pid;
time_t now;
int redir[2];
@@ -1191,7 +1190,7 @@ progman_start ()
struct prog *prog;
recompute_alarm = 0;
- debug (1, ("Starting components"));
+ debug (1, ("starting components"));
for (prog = proghead; prog; prog = prog->next)
if (IS_COMPONENT (prog)
&& ((prog->v.p.status == status_enabled && prog->pid == 0)
@@ -1706,8 +1705,6 @@ run_command (struct action *act, struct prog *prog, unsigned retcode,
if (pid == 0)
{
- int i;
-
debug (1, (_("executing %s"), act->command));
/* Child */
setenv ("PIES_VERSION", PACKAGE_VERSION, 1);

Return to:

Send suggestions and report system problems to the System administrator.