Thread (1 message) 1 message, 1 author, 2016-06-15

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:51:35

Erik Faye-Lund [off-list ref] writes:
quoted
diff --git a/connect.c b/connect.c
index 2119c3f..8eb9f44 100644
--- a/connect.c
+++ b/connect.c
@@ -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;
+                       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);
This kills the output from the case where "sockfd < 0" evaluates to
true for the last entry in ai, no (just above your second hunk), no?
In that case errno gets copied to saved_errno, and the old output
would do strerror(old_errno), but now you just print the log you've
gathered, and don't even look at saved_errno.

If this is intentional then you should probably kill the saved_errno
variable also, it's rendered pointless by this patch.
As error_message.buf contains strerror([saved_]errno), I think it is
intentional to remove strerror() from the final die().  Without looking at
the code outside the context of the patch I cannot tell if saved_errno has
become unneeded, but I tend to trust your analysis so...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help