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.
This commit is contained in:
parent
20f06162dd
commit
4516bd117c
10
src/client.c
10
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)
|
||||
|
Loading…
Reference in New Issue
Block a user