diff options
Diffstat (limited to 'daemon.c')
-rw-r--r-- | daemon.c | 11 |
1 files changed, 9 insertions, 2 deletions
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); |