changeset 21029:a3a045122aa4

lib-http: client: Created http_client_connection_failure() handler.
author Stephan Bosch <stephan@dovecot.fi>
date Sun, 11 Sep 2016 19:34:34 +0200
parents 7a59b4ec1ede
children 8aa7fd1cff61
files src/lib-http/http-client-connection.c
diffstat 1 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c	Sun Sep 11 19:44:32 2016 +0200
+++ b/src/lib-http/http-client-connection.c	Sun Sep 11 19:34:34 2016 +0200
@@ -48,6 +48,15 @@
 static void http_client_connection_ready(struct http_client_connection *conn);
 static void http_client_connection_input(struct connection *_conn);
 
+static inline void
+http_client_connection_failure(struct http_client_connection *conn,
+					 const char *reason)
+{
+	struct http_client_peer *peer = conn->peer;
+
+	http_client_peer_connection_failure(peer, reason);
+}
+
 unsigned int
 http_client_connection_count_pending(struct http_client_connection *conn)
 {
@@ -531,7 +540,7 @@
 				_conn->name, msecs/1000, msecs%1000);
 		}
 		http_client_connection_debug(conn, "%s", error);
-		http_client_peer_connection_failure(conn->peer, error);
+		http_client_connection_failure(conn, error);
 		break;
 	case CONNECTION_DISCONNECT_CONN_CLOSED:
 		/* retry pending requests if possible */
@@ -1226,7 +1235,7 @@
 	const char *error;
 
 	if (!success) {
-		http_client_peer_connection_failure(conn->peer, t_strdup_printf(
+		http_client_connection_failure(conn, t_strdup_printf(
 			"connect(%s) failed: %m", _conn->name));
 	} else {
 		conn->connected_timestamp = ioloop_timeval;
@@ -1247,8 +1256,8 @@
 
 		if (http_client_peer_addr_is_https(&conn->peer->addr)) {
 			if (http_client_connection_ssl_init(conn, &error) < 0) {
-				http_client_peer_connection_failure(conn->peer, error);
 				http_client_connection_debug(conn, "%s", error);
+				http_client_connection_failure(conn, error);
 				http_client_connection_close(&conn);
 			}
 			return;
@@ -1346,7 +1355,7 @@
 	conn->connect_request = NULL;
 
 	if (response->status != 200) {
-		http_client_peer_connection_failure(conn->peer, t_strdup_printf(
+		http_client_connection_failure(conn, t_strdup_printf(
 			"Tunnel connect(%s) failed: %d %s", name,
 				response->status, response->reason));
 		return;