summaryrefslogtreecommitdiff
path: root/credential-cache.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-01-18 15:16:53 -0800
committerJunio C Hamano <gitster@pobox.com>2012-01-18 15:16:53 -0800
commit1a2278084fef2ec6928a3d6504972dbddecbcdee (patch)
tree1a64b2c07e72b7946d0442d90382ad952b425d15 /credential-cache.c
parentc74f97a624f6a79767d2e2d55d98bab5e2b02f16 (diff)
parent35a71f1402b40b580d985a9d7e5fb1c9ec4d0232 (diff)
downloadgit-1a2278084fef2ec6928a3d6504972dbddecbcdee.tar.gz
Merge branch 'jk/credentials'
* jk/credentials: credential-cache: ignore "connection refused" errors unix-socket: do not let close() or chdir() clobber errno during cleanup credential-cache: report more daemon connection errors unix-socket: handle long socket pathnames
Diffstat (limited to 'credential-cache.c')
-rw-r--r--credential-cache.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/credential-cache.c b/credential-cache.c
index b15a9a7449..9a03792c7d 100644
--- a/credential-cache.c
+++ b/credential-cache.c
@@ -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 && 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);
}