Return _OUTPUT_BLOCKED only when the output fd is blocked.
int ret;
if (conn->output_locked)
- return _OUTPUT_BLOCKED;
+ return _OUTPUT_FINISHED;
req = conn->request_queue_head;
if (req == NULL || req->state == HTTP_SERVER_REQUEST_STATE_NEW) {
return _OUTPUT_ERROR;
http_server_connection_reset_idle_timeout(conn);
- return (ret > 0 ? _OUTPUT_AVAILABLE : _OUTPUT_BLOCKED);
+ if (ret == 0)
+ return _OUTPUT_BLOCKED;
+ if (conn->output_locked)
+ return _OUTPUT_FINISHED;
+ return _OUTPUT_AVAILABLE;
}
static int