summaryrefslogtreecommitdiff
path: root/ratox.c
diff options
context:
space:
mode:
authorsin <sin@2f30.org>2014-10-10 11:00:50 +0100
committersin <sin@2f30.org>2014-10-10 11:00:50 +0100
commitcdb4a8e44efb410b927b847d5b3b1c8f953d78c0 (patch)
tree65ef9a4798a92c2225edf99d4ce796a402b80758 /ratox.c
parent2bac75b6141c34010bbf679e732ad86d6dacfd6a (diff)
Don't spin on request/out/<ID> if we echo anything other than '0' or '1'
Diffstat (limited to 'ratox.c')
-rw-r--r--ratox.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ratox.c b/ratox.c
index 2592ec3..9fcf491 100644
--- a/ratox.c
+++ b/ratox.c
@@ -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;