From 4516bd117cfe95156e2ade4f92737cc94d19863d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 28 Aug 2008 20:03:56 +0200 Subject: client: client_defer_output() can create the first defer buffer client_defer_output() was designed to add new buffers to an existing deferred_send buffer. Tweak it and allow it to create a new buffer list. --- src/client.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/client.c b/src/client.c index 2aa52de4f..529e3012d 100644 --- a/src/client.c +++ b/src/client.c @@ -722,7 +722,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; + struct sllnode **buf_r; assert(client->deferred_send != NULL); @@ -738,10 +738,10 @@ static void client_defer_output(struct client *client, return; } - buf = client->deferred_send; - while (buf->next) - buf = buf->next; - buf->next = new_sllnode(data, length); + buf_r = &client->deferred_send; + while (*buf_r != NULL) + buf_r = &(*buf_r)->next; + *buf_r = new_sllnode(data, length); } static void client_write_output(struct client *client) -- cgit v1.2.3