Revision: 23001 http://trac.macosforge.org/projects/launchd/changeset/23001 Author: zarzycki@apple.com Date: 2007-01-04 12:17:27 -0800 (Thu, 04 Jan 2007) Log Message: ----------- Prepare for growth. Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-01-04 20:05:30 UTC (rev 23000) +++ trunk/launchd/src/launchd_core_logic.c 2007-01-04 20:17:27 UTC (rev 23001) @@ -306,6 +306,7 @@ static pid_t job_get_pid(job_t j); static jobmgr_t job_get_bs(job_t j); static void job_uncork_fork(job_t j); +static void job_log_stdouterr(job_t j); static void job_logv(job_t j, int pri, int err, const char *msg, va_list ap); static void job_log(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4))); static void job_log_error(job_t j, int pri, const char *msg, ...) __attribute__((format(printf, 3, 4))); @@ -1683,6 +1684,31 @@ } void +job_log_stdouterr(job_t j) +{ + char buf[4001]; + ssize_t rsz; + + rsz = read(j->log_redirect_fd, buf, sizeof(buf) - 1); + + if (rsz == 0) { + job_assumes(j, close(j->log_redirect_fd) != -1); + j->log_redirect_fd = 0; + } else if (job_assumes(j, rsz != -1)) { + buf[rsz] = '\0'; + switch (buf[0]) { + case '\n': + case '\r': + case '\0': + break; + default: + job_log(j, LOG_NOTICE, "Standard Out/Error: %s", buf); + break; + } + } +} + +void job_callback(void *obj, struct kevent *kev) { job_t j = obj; @@ -1716,26 +1742,7 @@ break; case EVFILT_READ: if (kev->ident == (uintptr_t)j->log_redirect_fd) { - char buf[4001]; - ssize_t rsz; - - rsz = read(j->log_redirect_fd, buf, sizeof(buf) - 1); - - if (rsz == 0) { - job_assumes(j, close(j->log_redirect_fd) != -1); - j->log_redirect_fd = 0; - } else if (job_assumes(j, rsz != -1)) { - buf[rsz] = '\0'; - switch (buf[0]) { - case '\n': - case '\r': - case '\0': - break; - default: - job_log(j, LOG_NOTICE, "Standard Out/Error: %s", buf); - break; - } - } + job_log_stdouterr(j); } else { socketgroup_callback(j, kev); }
participants (1)
-
source_changes@macosforge.org