From: Fredrik Tolf Date: Thu, 1 Jan 2009 03:50:08 +0000 (+0100) Subject: Make htparser exit when the root multiplexer exits. X-Git-Tag: 0.1~111 X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=commitdiff_plain;h=32e24c19cca5538c922542c7a6078efc53f5638b Make htparser exit when the root multiplexer exits. --- 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); }