diff options
-rw-r--r-- | gatchat/gatserver.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c index 4796b71b..a47d46c3 100644 --- a/gatchat/gatserver.c +++ b/gatchat/gatserver.c @@ -1050,19 +1050,19 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, read_count++; + if (rbytes == 0) + break; + + if (server->v250.echo) + send_common(server, (char *)buf, rbytes); + /* Ignore incoming bytes when processing a command line */ if (server->processing_cmdline) continue; total_read += rbytes; - - if (rbytes > 0) { - if (server->v250.echo) - send_common(server, (char *)buf, rbytes); - - ring_buffer_write_advance(server->read_buf, rbytes); - } - } while (err == G_IO_ERROR_NONE && rbytes > 0 && + ring_buffer_write_advance(server->read_buf, rbytes); + } while (err == G_IO_ERROR_NONE && read_count < server->max_read_attempts); if (total_read > 0) |