• Jeff King's avatar
    credential-cache: close stderr in daemon process · f5e3c0b9
    Jeff King authored
    If the stderr of "git credential-cache" is redirected to a
    pipe, the reader on the other end of a pipe may be surprised
    that the pipe remains open long after the process exits.
    This happens because we may auto-spawn a daemon which is
    long-lived, and which keeps stderr open.
    We can solve this by redirecting the daemon's stderr to
    /dev/null once we are ready to go into our event loop. We
    would not want to do so before then, because we may want to
    report errors about the setup (e.g., failure to establish
    the listening socket).
    This does mean that we will not report errors we encounter
    for specific clients. That's acceptable, as such errors
    should be rare (e.g., clients sending buggy requests).
    However, we also provide an escape hatch: if you want to see
    these later messages, you can provide the "--debug" option
    to keep stderr open.
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
credential-cache--daemon.c 6.29 KB