diff options
-rw-r--r-- | bounce.c | 5 | ||||
-rw-r--r-- | bounce.h | 1 | ||||
-rw-r--r-- | client.c | 5 |
3 files changed, 3 insertions, 8 deletions
diff --git a/bounce.c b/bounce.c index c6bd7b1..e113cc6 100644 --- a/bounce.c +++ b/bounce.c @@ -488,11 +488,12 @@ int main(int argc, char *argv[]) { for (;;) { enum Need needs = 0; for (size_t i = clientIndex; i < event.len; ++i) { + struct Client *client = event.clients[i]; event.fds[i].events = POLLIN; - if (clientDiff(event.clients[i])) { + if (!client->need && ringDiff(client->consumer)) { event.fds[i].events |= POLLOUT; } - needs |= event.clients[i]->need; + needs |= client->need; } int timeout = 10000; diff --git a/bounce.h b/bounce.h index 3951599..434e443 100644 --- a/bounce.h +++ b/bounce.h @@ -227,7 +227,6 @@ void clientRecv(struct Client *client); void clientSend(struct Client *client, const char *ptr, size_t len); void clientFormat(struct Client *client, const char *format, ...) __attribute__((format(printf, 2, 3))); -size_t clientDiff(const struct Client *client); void clientConsume(struct Client *client); extern bool stateNoNames; diff --git a/client.c b/client.c index 29546f1..bad8c11 100644 --- a/client.c +++ b/client.c @@ -423,11 +423,6 @@ void clientRecv(struct Client *client) { memmove(client->buf, line, client->len); } -size_t clientDiff(const struct Client *client) { - if (client->need) return 0; - return ringDiff(client->consumer); -} - static int wordcmp(const char *line, size_t i, const char *word) { if (line[0] == '@') { line += strcspn(line, " "); |