http_client_peer_addr2str(addr), ssl);
array_append(&queue->pending_peers, &peer, 1);
- queue->connect_attempts++;
+ if (queue->connect_attempts++ == 0)
+ queue->first_connect_time = ioloop_timeval;
}
/* start soft connect time-out (but only if we have another IP left) */
queue->connect_attempts >= set->max_connect_attempts) {
http_client_queue_debug(queue,
"Failed to set up any connection; failing all queued requests");
+ if (queue->connect_attempts > 1) {
+ unsigned int total_msecs =
+ timeval_diff_msecs(&ioloop_timeval, &queue->first_connect_time);
+ reason = t_strdup_printf("%s (%u attempts in %u.%03u secs)",
+ reason, queue->connect_attempts,
+ total_msecs/1000, total_msecs%1000);
+ }
queue->connect_attempts = 0;
http_client_queue_fail(queue,
HTTP_CLIENT_REQUEST_ERROR_CONNECT_FAILED, reason);