summaryrefslogtreecommitdiff
path: root/credential-cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'credential-cache.c')
-rw-r--r--credential-cache.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/credential-cache.c b/credential-cache.c
index dc98372e59..9a03792c7d 100644
--- a/credential-cache.c
+++ b/credential-cache.c
@@ -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);
}