changeset 16460:452cecc7e708

lib-http: Treat connect() timeouts as retryable errors.
author Timo Sirainen <tss@iki.fi>
date Thu, 06 Jun 2013 06:32:58 +0300
parents 554774a328b9
children 0a88c358cf82
files src/lib-http/http-client-connection.c
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c	Thu Jun 06 05:58:16 2013 +0300
+++ b/src/lib-http/http-client-connection.c	Thu Jun 06 06:32:58 2013 +0300
@@ -320,16 +320,18 @@
 		if (conn->connected_timestamp.tv_sec == 0) {
 			msecs = timeval_diff_msecs(&ioloop_timeval,
 						   &conn->connect_start_timestamp);
-			http_client_peer_connection_failure(conn->peer, t_strdup_printf(
+			error = t_strdup_printf(
 				"connect(%s) failed: Connection timed out in %u.%03u secs",
-				_conn->name, msecs/1000, msecs%1000));
+				_conn->name, msecs/1000, msecs%1000);
 		} else {
 			msecs = timeval_diff_msecs(&ioloop_timeval,
 						   &conn->connected_timestamp);
-			http_client_peer_connection_failure(conn->peer, t_strdup_printf(
+			error = t_strdup_printf(
 				"SSL handshaking to %s failed: Connection timed out in %u.%03u secs",
-				_conn->name, msecs/1000, msecs%1000));
+				_conn->name, msecs/1000, msecs%1000);
 		}
+		http_client_connection_retry_requests(conn,
+			HTTP_CLIENT_REQUEST_ERROR_TIMED_OUT, error);
 		break;
 	case CONNECTION_DISCONNECT_CONN_CLOSED:
 		/* retry pending requests if possible */