From 6a33d6385601c89fdaeb437537f714b3a01dcea4 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 27 Jun 2013 20:24:45 +0300 Subject: [PATCH] lib-http: Minor code cleanup. --- src/lib-http/http-client-connection.c | 11 +++++++++-- src/lib-http/http-client-peer.c | 5 ++--- src/lib-http/http-client-private.h | 2 ++ 3 files changed, 13 insertions(+), 5 deletions(-) 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); -- 2.47.3