diff options
author | June McEnroe <june@causal.agency> | 2020-08-15 14:46:11 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-08-15 14:54:33 -0400 |
commit | 34c39437f2bc2045a7017230dca7179faee5b4e6 (patch) | |
tree | b3d2f61035e3a153ea77308cf0563ec0a21b6e9c /daemon.c | |
parent | Implement non-blocking line-buffered reading (diff) | |
download | catsit-34c39437f2bc2045a7017230dca7179faee5b4e6.tar.gz catsit-34c39437f2bc2045a7017230dca7179faee5b4e6.zip |
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.
Diffstat (limited to '')
-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); |