credential-cache: report more daemon connection errors
authorJeff King <peff@peff.net>
Tue, 10 Jan 2012 04:57:33 +0000 (23:57 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Jan 2012 18:10:43 +0000 (10:10 -0800)
Originally, this code remained relatively silent when we
failed to connect to the cache. The idea was that it was
simply a cache, and we didn't want to bother the user with
temporary failures (the worst case is that we would simply
ask their password again).

However, if you have a configuration failure or other
problem, it is helpful for the daemon to report those
problems. Git will happily ignore the failed error code, but
the extra information to stderr can help the user diagnose
the problem.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
credential-cache.c

index b15a9a74494c746d6f1e70b7658769c343c66576..193301877f1ee29f54c2da0b933d9b7fe10f157a 100644 (file)
@@ -71,10 +71,14 @@ static void do_cache(const char *socket, const char *action, int timeout,
                        die_errno("unable to relay credential");
        }
 
-       if (send_request(socket, &buf) < 0 && (flags & FLAG_SPAWN)) {
-               spawn_daemon(socket);
-               if (send_request(socket, &buf) < 0)
+       if (send_request(socket, &buf) < 0) {
+               if (errno != ENOENT)
                        die_errno("unable to connect to cache daemon");
+               if (flags & FLAG_SPAWN) {
+                       spawn_daemon(socket);
+                       if (send_request(socket, &buf) < 0)
+                               die_errno("unable to connect to cache daemon");
+               }
        }
        strbuf_release(&buf);
 }