From 32e24c19cca5538c922542c7a6078efc53f5638b Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Thu, 1 Jan 2009 04:50:08 +0100 Subject: [PATCH] Make htparser exit when the root multiplexer exits. --- src/htparser.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/htparser.c b/src/htparser.c index 07f3dd6..001c6c1 100644 --- a/src/htparser.c +++ b/src/htparser.c @@ -453,6 +453,28 @@ out: close(ss); } +static void plexwatch(struct muth *muth, va_list args) +{ + vavar(int, fd); + char *buf; + int ret; + + while(1) { + block(fd, EV_READ, 0); + buf = smalloc(65536); + ret = recv(fd, buf, 65536, 0); + if(ret < 0) { + flog(LOG_WARNING, "received error on rootplex read channel: %s", strerror(errno)); + exit(1); + } else if(ret == 0) { + exit(0); + } + /* Maybe I'd like to implement some protocol in this direction + * some day... */ + free(buf); + } +} + int main(int argc, char **argv) { int fd; @@ -478,6 +500,7 @@ int main(int argc, char **argv) } else { mustart(listenloop, fd); } + mustart(plexwatch, plex); ioloop(); return(0); } -- 2.11.0