From 592d7484ce76fde36c78dc85a6099149c42b734c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 28 Aug 2008 20:20:04 +0200 Subject: client: use client_defer_output() in client_write() Eliminate duplicated code, call client_defer_output() which we splitted from client_write_output() earlier. --- src/client.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/client.c b/src/client.c index d681f8b0b..4bb11ba5a 100644 --- a/src/client.c +++ b/src/client.c @@ -750,22 +750,18 @@ static void client_write(struct client *client, if ((ret = write(client->fd, data, length)) < 0) { if (errno == EAGAIN || errno == EINTR) { - client->deferred_send = new_sllnode(data, length); + client_defer_output(client, data, length); } else { DEBUG("client %i: problems writing\n", client->num); client->expired = 1; return; } } else if ((size_t)ret < client->send_buf_used) { - client->deferred_send = new_sllnode(data + ret, length - ret); + client_defer_output(client, data + ret, length - ret); } - if (client->deferred_send) { + if (client->deferred_send) DEBUG("client %i: buffer created\n", client->num); - client->deferred_bytes = - client->deferred_send->size - + sizeof(struct sllnode); - } } static void client_write_output(struct client *client) -- cgit v1.2.3