Commit 4516bd11 authored by Max Kellermann's avatar Max Kellermann

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.
parent 20f06162
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment