diff options
-rw-r--r-- | src/client.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/client.c b/src/client.c index 586d4d212..6457fb373 100644 --- a/src/client.c +++ b/src/client.c @@ -719,7 +719,7 @@ int client_print(int fd, const char *buffer, size_t buflen) static void client_defer_output(struct client *client, const void *data, size_t length) { - struct sllnode *buf = client->deferred_send; + struct sllnode *buf; assert(client->deferred_send != NULL); @@ -732,11 +732,13 @@ static void client_defer_output(struct client *client, (unsigned long)client_max_output_buffer_size); /* cause client to close */ client->expired = 1; - } else { - while (buf->next) - buf = buf->next; - buf->next = new_sllnode(data, length); + return; } + + buf = client->deferred_send; + while (buf->next) + buf = buf->next; + buf->next = new_sllnode(data, length); } static void client_write_output(struct client *client) |