From 34c39437f2bc2045a7017230dca7179faee5b4e6 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Sat, 15 Aug 2020 14:46:11 -0400 Subject: Read service pipes Changed line reading functions to return const char * because modifying the strings by adding '\0' into them screws up the following call. --- daemon.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'daemon.c') diff --git a/daemon.c b/daemon.c index 42ea78f..c759f20 100644 --- a/daemon.c +++ b/daemon.c @@ -286,13 +286,20 @@ int main(int argc, char *argv[]) { } if (nfds > 0 && fds[0].revents) { - for (char *line; NULL != (line = lineRead(&fifoLine, fifo));) { + const char *line; + while (NULL != (line = lineRead(&fifoLine, fifo))) { syslog(LOG_INFO, "control: %s", line); } if (errno != EAGAIN) syslog(LOG_ERR, "read: %m"); } - // TODO: Handle pipes. + if (nfds > 0) { + for (size_t i = 0; i < services.len; ++i) { + if (fds[1 + 2 * i].revents || fds[2 + 2 * i].revents) { + serviceRead(&services.ptr[i]); + } + } + } if (timespecisset(&deadline)) { clock_gettime(CLOCK_MONOTONIC, &now); -- cgit 1.4.1