Mercurial > dovecot > core-2.2
changeset 21030:8aa7fd1cff61
lib-http: client: Added function that checks whether a connection is currently active.
author | Stephan Bosch <stephan@dovecot.fi> |
---|---|
date | Wed, 14 Sep 2016 01:26:10 +0200 |
parents | a3a045122aa4 |
children | 5da5294c5b31 |
files | src/lib-http/http-client-connection.c src/lib-http/http-client-private.h |
diffstat | 2 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c Sun Sep 11 19:34:34 2016 +0200 +++ b/src/lib-http/http-client-connection.c Wed Sep 14 01:26:10 2016 +0200 @@ -72,6 +72,18 @@ return (conn->to_idle != NULL); } +bool http_client_connection_is_active(struct http_client_connection *conn) +{ + if (!conn->connected) + return FALSE; + + if (conn->in_req_callback || conn->pending_request != NULL) + return TRUE; + + return (array_is_created(&conn->request_wait_list) && + array_count(&conn->request_wait_list) > 0); +} + static void http_client_connection_retry_requests(struct http_client_connection *conn, unsigned int status, const char *error)
--- a/src/lib-http/http-client-private.h Sun Sep 11 19:34:34 2016 +0200 +++ b/src/lib-http/http-client-private.h Wed Sep 14 01:26:10 2016 +0200 @@ -332,6 +332,7 @@ http_client_connection_count_pending(struct http_client_connection *conn); int http_client_connection_check_ready(struct http_client_connection *conn); bool http_client_connection_is_idle(struct http_client_connection *conn); +bool http_client_connection_is_active(struct http_client_connection *conn); int http_client_connection_next_request(struct http_client_connection *conn); void http_client_connection_check_idle(struct http_client_connection *conn); void http_client_connection_switch_ioloop(struct http_client_connection *conn);