diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2015-08-10 11:47:51 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-12 14:50:11 -0700 |
commit | 9e9033166b3a6b34aad917891b9210fa194fdfd9 (patch) | |
tree | 596cc0fa5f6961da559da1ec320eccbc3c8e6419 /credential-cache--daemon.c | |
parent | credential-cache--daemon: delete socket from main() (diff) | |
download | tgif-9e9033166b3a6b34aad917891b9210fa194fdfd9.tar.xz |
credential-cache--daemon: use tempfile module
Use the tempfile module to ensure that the socket file gets deleted on
program exit.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'credential-cache--daemon.c')
-rw-r--r-- | credential-cache--daemon.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c index a671b2b53c..eef6fce4c7 100644 --- a/credential-cache--daemon.c +++ b/credential-cache--daemon.c @@ -1,23 +1,11 @@ #include "cache.h" +#include "tempfile.h" #include "credential.h" #include "unix-socket.h" #include "sigchain.h" #include "parse-options.h" -static const char *socket_path; - -static void cleanup_socket(void) -{ - if (socket_path) - unlink(socket_path); -} - -static void cleanup_socket_on_signal(int sig) -{ - cleanup_socket(); - sigchain_pop(sig); - raise(sig); -} +static struct tempfile socket_file; struct credential_cache_entry { struct credential item; @@ -256,6 +244,7 @@ static void check_socket_directory(const char *path) int main(int argc, const char **argv) { + const char *socket_path; static const char *usage[] = { "git-credential-cache--daemon [opts] <socket_path>", NULL @@ -272,14 +261,11 @@ int main(int argc, const char **argv) if (!socket_path) usage_with_options(usage, options); - check_socket_directory(socket_path); - - atexit(cleanup_socket); - sigchain_push_common(cleanup_socket_on_signal); + check_socket_directory(socket_path); + register_tempfile(&socket_file, socket_path); serve_cache(socket_path, debug); - - unlink(socket_path); + delete_tempfile(&socket_file); return 0; } |