diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-04-14 18:37:16 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-04-14 18:37:16 -0700 |
commit | 485c7ade03c219e1b6003d566b6d0eae7bd44e1b (patch) | |
tree | d8c3735aa231a0a937d463f35fa1ed2d1fed2fad | |
parent | Merge branch 'jc/index-pack' into maint (diff) | |
parent | credential-cache--daemon: clarify "exit" action semantics (diff) | |
download | tgif-485c7ade03c219e1b6003d566b6d0eae7bd44e1b.tar.xz |
Merge branch 'jk/credential-cache-comment-exit' into maint
A code clarification.
* jk/credential-cache-comment-exit:
credential-cache--daemon: clarify "exit" action semantics
-rw-r--r-- | credential-cache--daemon.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c index caef21e4fc..291c0fd5e9 100644 --- a/credential-cache--daemon.c +++ b/credential-cache--daemon.c @@ -126,8 +126,17 @@ static void serve_one_client(FILE *in, FILE *out) fprintf(out, "password=%s\n", e->item.password); } } - else if (!strcmp(action.buf, "exit")) + else if (!strcmp(action.buf, "exit")) { + /* + * It's important that we clean up our socket first, and then + * signal the client only once we have finished the cleanup. + * Calling exit() directly does this, because we clean up in + * our atexit() handler, and then signal the client when our + * process actually ends, which closes the socket and gives + * them EOF. + */ exit(0); + } else if (!strcmp(action.buf, "erase")) remove_credential(&c); else if (!strcmp(action.buf, "store")) { |