From b45cd330549c234d0c061602d6239b083ddb9978 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 11 Jun 2007 15:16:09 +0000 Subject: add daemon_logv() git-svn-id: file:///home/lennart/svn/public/libdaemon/trunk@116 153bfa13-eec0-0310-be40-b0cb6a0e1b4b --- libdaemon/dexec.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'libdaemon/dexec.c') diff --git a/libdaemon/dexec.c b/libdaemon/dexec.c index 3726565..10c757c 100644 --- a/libdaemon/dexec.c +++ b/libdaemon/dexec.c @@ -44,14 +44,13 @@ #define MAX_ARGS 100 -int daemon_exec(const char *dir, int *ret, const char *prog, ...) { +int daemon_execv(const char *dir, int *ret, const char *prog, va_list ap) { pid_t pid; int p[2]; unsigned n = 0; static char buf[256]; int sigfd, r; fd_set fds; - va_list ap; assert(daemon_signal_fd() >= 0); @@ -93,12 +92,10 @@ int daemon_exec(const char *dir, int *ret, const char *prog, ...) { chdir("/"); } - va_start(ap, prog); for (i = 0; i < MAX_ARGS-1; i++) if (!(args[i] = va_arg(ap, char*))) break; args[i] = NULL; - va_end(ap); execv(prog, args); @@ -128,7 +125,6 @@ int daemon_exec(const char *dir, int *ret, const char *prog, ...) { return -1; } - if (FD_ISSET(p[0], &qfds)) { char c; @@ -190,3 +186,14 @@ int daemon_exec(const char *dir, int *ret, const char *prog, ...) { } } } + +int daemon_exec(const char *dir, int *ret, const char *prog, ...) { + va_list ap; + int r; + + va_start(ap, prog); + r = daemon_execv(dir, ret, prog, ap); + va_end(ap); + + return r; +} -- cgit