diff options
-rw-r--r-- | degesch.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -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; } |