Code

grep doc: add --break / --heading / -W to synopsis
[git.git] / credential-cache.c
index dc98372e59d1baf2a9714ecde9ffc96589b9cbac..9a03792c7de109e957a1f01924c4f66ba87b5c87 100644 (file)
@@ -71,11 +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))
-               return;
-       if (flags & FLAG_SPAWN) {
-               spawn_daemon(socket);
-               send_request(socket, &buf);
+       if (send_request(socket, &buf) < 0) {
+               if (errno != ENOENT && errno != ECONNREFUSED)
+                       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);
 }