Skip to content

Commit

Permalink
Merge branch 'dz/connect-error-report' into maint
Browse files Browse the repository at this point in the history
* dz/connect-error-report:
  Do not log unless all connect() attempts fail
  • Loading branch information
Junio C Hamano committed Sep 12, 2011
2 parents b3038a5 + 63a995b commit 908bb1a
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions connect.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,8 @@ static const char *ai_name(const struct addrinfo *ai)
*/
static int git_tcp_connect_sock(char *host, int flags)
{
int sockfd = -1, saved_errno = 0;
struct strbuf error_message = STRBUF_INIT;
int sockfd = -1;
const char *port = STR(DEFAULT_GIT_PORT);
struct addrinfo hints, *ai0, *ai;
int gai;
Expand All @@ -219,18 +220,12 @@ static int git_tcp_connect_sock(char *host, int flags)
for (ai0 = ai; ai; ai = ai->ai_next, cnt++) {
sockfd = socket(ai->ai_family,
ai->ai_socktype, ai->ai_protocol);
if (sockfd < 0) {
saved_errno = errno;
continue;
}
if (connect(sockfd, ai->ai_addr, ai->ai_addrlen) < 0) {
saved_errno = errno;
fprintf(stderr, "%s[%d: %s]: errno=%s\n",
host,
cnt,
ai_name(ai),
strerror(saved_errno));
close(sockfd);
if ((sockfd < 0) ||
(connect(sockfd, ai->ai_addr, ai->ai_addrlen) < 0)) {
strbuf_addf(&error_message, "%s[%d: %s]: errno=%s\n",
host, cnt, ai_name(ai), strerror(errno));
if (0 <= sockfd)
close(sockfd);
sockfd = -1;
continue;
}
Expand All @@ -242,11 +237,13 @@ static int git_tcp_connect_sock(char *host, int flags)
freeaddrinfo(ai0);

if (sockfd < 0)
die("unable to connect a socket (%s)", strerror(saved_errno));
die("unable to connect to %s:\n%s", host, error_message.buf);

if (flags & CONNECT_VERBOSE)
fprintf(stderr, "done.\n");

strbuf_release(&error_message);

return sockfd;
}

Expand Down

0 comments on commit 908bb1a

Please sign in to comment.