client: check "expired" flag again in client_write_output()

When client_defer_output() aborts the connection to the client,
client_write_output() called client_write_deferred() anyway.  This
caused an assertion failure.  Fix it by checking for the "expired"
flag again after client_defer_output() returns.
This commit is contained in:
Max Kellermann 2009-06-04 08:59:33 +02:00
parent 427dd81678
commit faaf9dafe1

View File

@ -776,6 +776,9 @@ static void client_write_output(struct client *client)
client_defer_output(client, client->send_buf,
client->send_buf_used);
if (client_is_expired(client))
return;
/* try to flush the deferred buffers now; the current
server command may take too long to finish, and
meanwhile try to feed output to the client,