diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-24 13:38:52 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-24 14:04:31 +0200 |
commit | e6772c4d68849cfdb4547a59bc51cb6dd0acd2c6 (patch) | |
tree | 72c0baa79455c9008df3f137a11117772b321a52 /src/progman.c | |
parent | 68796f86fe6abae13debf253c0e16b4bac9c1bca (diff) | |
download | pies-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.c | 11 |
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); |