client: handle partial lines correctly

Commit 6eb62e47 didn't obey partial lines correctly: when a line
wasn't finished in one read, the first part was ignored when the rest
arrived.
This commit is contained in:
Max Kellermann 2008-10-17 23:23:54 +02:00
parent ae6ca0b8af
commit 79459d08d9
1 changed files with 2 additions and 2 deletions

View File

@ -445,12 +445,12 @@ static int client_process_line(struct client *client, char *line)
static int client_input_received(struct client *client, int bytesRead)
{
char *start = client->buffer + client->bufferLength;
char *end = start + bytesRead;
char *start = client->buffer + client->bufferPos, *end;
char *newline, *next;
int ret;
client->bufferLength += bytesRead;
end = client->buffer + client->bufferLength;
/* process all lines */
while ((newline = memchr(start, '\n', end - start)) != NULL) {