Merge branch 'maint' into ef/ipv4-connect-error-report
authorJunio C Hamano <gitster@pobox.com>
Mon, 1 Aug 2011 17:49:40 +0000 (10:49 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Aug 2011 17:49:40 +0000 (10:49 -0700)
* maint:
  connect: correctly number ipv6 network adapter

1  2 
connect.c

diff --cc connect.c
index 844107e2954f6cb8354990d69c6568b9d3091470,b3585aba22bcbd72c9697fd256ef95f691aa384f..d2ce57f850fa6d0a6de04f6f714dec487ff9f1ed
+++ b/connect.c
@@@ -217,15 -216,21 +217,15 @@@ static int git_tcp_connect_sock(char *h
        if (flags & CONNECT_VERBOSE)
                fprintf(stderr, "done.\nConnecting to %s (port %s) ... ", host, port);
  
-       for (ai0 = ai; ai; ai = ai->ai_next) {
+       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;
                }