On Sun, Nov 08, 2015 at 09:58:06PM -0500, Noam Postavsky wrote:
> > I am leaning more towards ignoring SIGHUP (configurably) being the only
> > really sane path forward. Do you want to try your hand at a patch?
>
> Something like this?
Yes, but with a proper commit message, and an update to
Documentation/config.txt. :)
Automated tests would be nice, but I suspect it may be too complicated
to be worth it.
> diff --git i/credential-cache--daemon.c w/credential-cache--daemon.c
> index eef6fce..e3f2612 100644
> --- i/credential-cache--daemon.c
> +++ w/credential-cache--daemon.c
> @@ -256,6 +256,9 @@ int main(int argc, const char **argv)
> OPT_END()
> };
>
> + int ignore_sighup = 0;
> + git_config_get_bool("credential.cache.ignoreSighup", &ignore_sighup);
I don't think we should use the credential.X.* namespace here. That is
already reserved for credential setup for URLs matching "X".
Probably "credentialCache.ignoreSIGHUP" would be better. Or maybe
"credential-cache". We usually avoid dashes in our config names, but
in this case it matches the program name.
Also, we usually spell config names as all-lowercase in the code. The
older callback-interface config code needed this (since we just strcmp'd
the keys against a normalized case). I think git_config_get_bool() will
normalize the key we feed it, but I'd rather stay consistent.
> @@ -264,6 +267,12 @@ int main(int argc, const char **argv)
>
> check_socket_directory(socket_path);
> register_tempfile(&socket_file, socket_path);
> +
> + if (ignore_sighup) {
> + sigchain_pop(SIGHUP);
> + signal(SIGHUP, SIG_IGN);
> + }
> +
I don't think you need to pop the tempfile handler here. You can simply
sigchain_push() the SIG_IGN, and since we won't ever pop and propagate
that, it doesn't matter what is under it.
-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html