diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-12-16 00:04:29 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-12-16 00:04:29 +0200 |
commit | e66b9314c918ffcc495cb30ab22abfc9ad71d7d5 (patch) | |
tree | 22a85a54e19a6f2791e8d6b5c4566810a7766cfd | |
parent | 48e3e7d108541fc2612bab8081d4871398429cc3 (diff) | |
download | pies-e66b9314c918ffcc495cb30ab22abfc9ad71d7d5.tar.gz pies-e66b9314c918ffcc495cb30ab22abfc9ad71d7d5.tar.bz2 |
Bugfixes.
* src/diag.c (vlogmsg): Copy va_list before printing
it to stderr.
* src/progman.c (print_status): First arg is const.
-rw-r--r-- | src/diag.c | 6 | ||||
-rw-r--r-- | src/progman.c | 9 |
2 files changed, 7 insertions, 8 deletions
@@ -44,16 +44,20 @@ syslog_printer (int prio, const char *fmt, va_list ap) void vlogmsg (int prio, const char *fmt, va_list ap) { if (DIAG_OUTPUT (DIAG_TO_STDERR)) { + va_list aq; fprintf (stderr, "%s: ", program_name); - vfprintf (stderr, fmt, ap); + va_copy (aq, ap); + vfprintf (stderr, fmt, aq); + va_end (aq); fprintf (stderr, "\n"); } + if (DIAG_OUTPUT (DIAG_TO_SYSLOG)) syslog_printer (prio, fmt, ap); } void logmsg (int prio, const char *fmt, ...) diff --git a/src/progman.c b/src/progman.c index ffaf37b..9143b99 100644 --- a/src/progman.c +++ b/src/progman.c @@ -1705,13 +1705,13 @@ progman_stop () sleep (1); } prog_stop_all (SIGKILL); } static void -print_status (char *tag, pid_t pid, int status, int expect_term) +print_status (const char *tag, pid_t pid, int status, int expect_term) { if (WIFEXITED (status)) { if (WEXITSTATUS (status) == 0) debug (1, (_("%s (%lu) exited successfully"), tag, (unsigned long) pid)); @@ -2050,13 +2050,13 @@ run_command (struct action *act, struct prog *prog, unsigned retcode, exit (127); } /* Master */ debug (1, (_("started command: %s, pid=%lu"), act->command, (unsigned long) pid)); - register_command (_("[action]"), xstrdup (act->command), pid); + register_command ((char*) _("[action]"), xstrdup (act->command), pid); } static void react (struct prog *prog, int status, pid_t pid) { unsigned retcode; @@ -2127,17 +2127,12 @@ progman_cleanup (int expect_term) while ((pid = waitpid (-1, &status, WNOHANG)) > 0) { struct prog *prog = prog_lookup_by_pid (pid); if (!prog) { print_status (_("subprocess"), pid, status, expect_term); - /* - logmsg (LOG_NOTICE, - _("subprocess %lu finished"), - (unsigned long) pid); - */ continue; } prog->pid = 0; switch (prog->type) { case TYPE_COMPONENT: |