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; }