From ce83f8244c6094e62d18946f80b4ad9f3ea93c02 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Wed, 12 Aug 2015 23:20:46 +0200
Subject: degesch: don't ignore data right before an EOF
---
degesch.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/degesch.c b/degesch.c
index 442659b..69e15bd 100644
--- a/degesch.c
+++ b/degesch.c
@@ -3966,18 +3966,15 @@ static enum transport_io_result
irc_try_read (struct server *s)
{
enum transport_io_result result = s->transport->try_read (s);
- if (result == TRANSPORT_IO_OK)
+ if (s->read_buffer.len >= (1 << 20))
{
- if (s->read_buffer.len >= (1 << 20))
- {
- // XXX: this is stupid; if anything, count it in dependence of time
- log_server_error (s, s->buffer,
- "The IRC server seems to spew out data frantically");
- return TRANSPORT_IO_ERROR;
- }
- if (s->read_buffer.len)
- irc_process_buffer (&s->read_buffer, irc_process_message, s);
+ // XXX: this is stupid; if anything, count it in dependence of time
+ log_server_error (s, s->buffer,
+ "The IRC server seems to spew out data frantically");
+ return TRANSPORT_IO_ERROR;
}
+ if (s->read_buffer.len)
+ irc_process_buffer (&s->read_buffer, irc_process_message, s);
return result;
}
--
cgit v1.2.3-70-g09d2