degesch: don't ignore data right before an EOF

This commit is contained in:
Přemysl Eric Janouch 2015-08-12 23:20:46 +02:00
parent 8a8ff11887
commit ce83f8244c
1 changed files with 7 additions and 10 deletions

View File

@ -3966,18 +3966,15 @@ static enum transport_io_result
irc_try_read (struct server *s) irc_try_read (struct server *s)
{ {
enum transport_io_result result = s->transport->try_read (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,
// XXX: this is stupid; if anything, count it in dependence of time "The IRC server seems to spew out data frantically");
log_server_error (s, s->buffer, return TRANSPORT_IO_ERROR;
"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);
} }
if (s->read_buffer.len)
irc_process_buffer (&s->read_buffer, irc_process_message, s);
return result; return result;
} }