From: Timo Sirainen Date: Thu, 27 Jun 2013 17:24:45 +0000 (+0300) Subject: lib-http: Minor code cleanup. X-Git-Tag: 2.2.5~93 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a33d6385601c89fdaeb437537f714b3a01dcea4;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Minor code cleanup. --- diff --git a/src/lib-http/http-client-connection.c b/src/lib-http/http-client-connection.c index 2fe2659254..a341559322 100644 --- a/src/lib-http/http-client-connection.c +++ b/src/lib-http/http-client-connection.c @@ -44,15 +44,22 @@ http_client_connection_debug(struct http_client_connection *conn, static void http_client_connection_input(struct connection *_conn); -bool http_client_connection_is_ready(struct http_client_connection *conn) +unsigned int +http_client_connection_count_pending(struct http_client_connection *conn) { unsigned int pending_count = array_count(&conn->request_wait_list); if (conn->pending_request != NULL) pending_count++; + return pending_count; +} + +bool http_client_connection_is_ready(struct http_client_connection *conn) +{ return (conn->connected && !conn->output_locked && !conn->close_indicated && - pending_count < conn->client->set.max_pipelined_requests); + http_client_connection_count_pending(conn) < + conn->client->set.max_pipelined_requests); } bool http_client_connection_is_idle(struct http_client_connection *conn) diff --git a/src/lib-http/http-client-peer.c b/src/lib-http/http-client-peer.c index 1ce5839815..8d33bee970 100644 --- a/src/lib-http/http-client-peer.c +++ b/src/lib-http/http-client-peer.c @@ -106,9 +106,8 @@ http_client_peer_next_request(struct http_client_peer *peer) /* find the least busy connection */ array_foreach(&peer->conns, conn_idx) { if (http_client_connection_is_ready(*conn_idx)) { - unsigned int waiting = array_count(&(*conn_idx)->request_wait_list); - if ((*conn_idx)->pending_request != NULL) - waiting++; + unsigned int waiting = http_client_connection_count_pending(*conn_idx); + if (waiting < min_waiting) { min_waiting = waiting; conn = *conn_idx; diff --git a/src/lib-http/http-client-private.h b/src/lib-http/http-client-private.h index beab561b4c..4d9f6f9f3f 100644 --- a/src/lib-http/http-client-private.h +++ b/src/lib-http/http-client-private.h @@ -218,6 +218,8 @@ struct http_client_connection * http_client_connection_create(struct http_client_peer *peer); void http_client_connection_ref(struct http_client_connection *conn); void http_client_connection_unref(struct http_client_connection **_conn); +unsigned int +http_client_connection_count_pending(struct http_client_connection *conn); bool http_client_connection_is_ready(struct http_client_connection *conn); bool http_client_connection_is_idle(struct http_client_connection *conn); bool http_client_connection_next_request(struct http_client_connection *conn);