threads / discuss / 27791

patchResend: [PATCH] Do not log unless all connect() attempts fail

Subject: Resend: [PATCH] Do not log unless all connect() attempts fail

## tl;dr

5 messages between Jul 11, 2011 and Jul 13, 2011. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Dave Zarzycki· Jul 11, 2011, 18:06 UTC · lore
IPv6 hosts are often unreachable on the primarily IPv4 Internet and
therefore we shouldn't print an error if there are still other hosts we
can try to connect() to. This helps "git fetch --quiet" stay quiet.
---
 connect.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
Show changes to connect.c +6 −6
diff --git a/connect.c b/connect.c
index 2119c3f..8eb9f44 100644
--- a/connect.c
+++ b/connect.c
@@ -192,6 +192,7 @@ static const char *ai_name(const struct addrinfo *ai)
  */
 static int git_tcp_connect_sock(char *host, int flags)
 {
+       struct strbuf error_message = STRBUF_INIT;
        int sockfd = -1, saved_errno = 0;
        const char *port = STR(DEFAULT_GIT_PORT);
        struct addrinfo hints, *ai0, *ai;
@@ -225,11 +226,8 @@ static int git_tcp_connect_sock(char *host, int flags)
                }
                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));
+                       strbuf_addf(&error_message, "%s[%d: %s]: errno=%s\n",
+                               host, cnt, ai_name(ai), strerror(saved_errno));
                        close(sockfd);
                        sockfd = -1;
                        continue;
@@ -242,11 +240,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;
 }
-- 
1.7.6.135.g8cdba
Jeff King· Jul 12, 2011, 05:55 UTC · re: Dave Zarzycki · lore

Re: Resend: [PATCH] Do not log unless all connect() attempts fail

On Mon, Jul 11, 2011 at 11:06:15AM -0700, Dave Zarzycki wrote:
> IPv6 hosts are often unreachable on the primarily IPv4 Internet and
> therefore we shouldn't print an error if there are still other hosts we
> can try to connect() to. This helps "git fetch --quiet" stay quiet.

Thanks for the resend; I think this got lost in the shuffle between releases. This version addresses my complaints about the original; I don't see any reason it shouldn't be applied.

-Peff
Dave Zarzycki· Jul 12, 2011, 16:29 UTC · re: Junio C Hamano · lore

Re: Resend: [PATCH] Do not log unless all connect() attempts fail

Sure, no problem-o. (Sorry, I should have read the submitting patches document first.) Thanks again!
On Jul 12, 2011, at 9:09 AM, Junio C Hamano wrote:
> This looks Looks good to me; could you sign-off the patch, please?
> 
> Thanks.
Erik Faye-Lund· Jul 13, 2011, 09:26 UTC · re: Junio C Hamano · lore

Re: Resend: [PATCH] Do not log unless all connect() attempts fail

On Tue, Jul 12, 2011 at 6:09 PM, Junio C Hamano <gitster@pobox.com> wrote:
> This looks Looks good to me; could you sign-off the patch, please?
>

As I noted on the resend with the sign-off, I believe there's a problem with the patch where saved_errno is written to in one place but the error never gets reported after applying the patch.

← back to recent threads