diff options
author | sin <sin@2f30.org> | 2014-10-10 11:00:50 +0100 |
---|---|---|
committer | sin <sin@2f30.org> | 2014-10-10 11:00:50 +0100 |
commit | cdb4a8e44efb410b927b847d5b3b1c8f953d78c0 (patch) | |
tree | 65ef9a4798a92c2225edf99d4ce796a402b80758 | |
parent | 2bac75b6141c34010bbf679e732ad86d6dacfd6a (diff) |
Don't spin on request/out/<ID> if we echo anything other than '0' or '1'
-rw-r--r-- | ratox.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1615,6 +1615,7 @@ loop(void) char c; fd_set rfds; struct timeval tv; + struct file reqfifo; t0 = time(NULL); printout("DHT > Connecting\n"); @@ -1804,7 +1805,10 @@ loop(void) rtmp = TAILQ_NEXT(req, entry); if (FD_ISSET(req->fd, &rfds) == 0) continue; - if (read(req->fd, &c, 1) != 1) + reqfifo.name = req->idstr; + reqfifo.flags = O_RDONLY | O_NONBLOCK; + if (fiforead(gslots[REQUEST].fd[OUT], &req->fd, reqfifo, + &c, 1) != 1) continue; if (c != '0' && c != '1') continue; |