summaryrefslogtreecommitdiff
path: root/daemon.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2014-02-08 14:08:51 +0700
committerJunio C Hamano <gitster@pobox.com>2014-02-10 10:46:35 -0800
commitde0957ce2e88b8ad639f1e4a7197eb556e114a1c (patch)
tree6596fe5a6874207530dfa0ad737ea066ca51c22e /daemon.c
parent79fcbf7e703ca5805ebd46b2c7e09d0703f1c1ff (diff)
downloadgit-de0957ce2e88b8ad639f1e4a7197eb556e114a1c.tar.gz
daemon: move daemonize() to libgit.a
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'daemon.c')
-rw-r--r--daemon.c30
1 files changed, 4 insertions, 26 deletions
diff --git a/daemon.c b/daemon.c
index 503e03906c..eba1255684 100644
--- a/daemon.c
+++ b/daemon.c
@@ -1056,11 +1056,6 @@ static void drop_privileges(struct credentials *cred)
/* nothing */
}
-static void daemonize(void)
-{
- die("--detach not supported on this platform");
-}
-
static struct credentials *prepare_credentials(const char *user_name,
const char *group_name)
{
@@ -1102,24 +1097,6 @@ static struct credentials *prepare_credentials(const char *user_name,
return &c;
}
-
-static void daemonize(void)
-{
- switch (fork()) {
- case 0:
- break;
- case -1:
- die_errno("fork failed");
- default:
- exit(0);
- }
- if (setsid() == -1)
- die_errno("setsid failed");
- close(0);
- close(1);
- close(2);
- sanitize_stdfds();
-}
#endif
static void store_pid(const char *path)
@@ -1333,9 +1310,10 @@ int main(int argc, char **argv)
if (inetd_mode || serve_mode)
return execute();
- if (detach)
- daemonize();
- else
+ if (detach) {
+ if (daemonize())
+ die("--detach not supported on this platform");
+ } else
sanitize_stdfds();
if (pid_file)