diff options
Diffstat (limited to 'credential-cache.c')
-rw-r--r-- | credential-cache.c | 13 |
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); } |