summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--bounce.c5
-rw-r--r--bounce.h1
-rw-r--r--client.c5
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, " ");