summary refs log tree commit diff
path: root/daemon.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--daemon.c11
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);