From ce83f8244c6094e62d18946f80b4ad9f3ea93c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Wed, 12 Aug 2015 23:20:46 +0200 Subject: [PATCH] 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; }