From: Nick Mathewson Date: Wed, 8 Aug 2018 20:59:53 +0000 (-0400) Subject: Make finish_daemon() return a boolean to say whether it did anything. X-Git-Tag: tor-0.3.5.1-alpha~92^2~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=622a2c6bee19af3bab0e84702a36ff2df39db7e7;p=thirdparty%2Ftor.git Make finish_daemon() return a boolean to say whether it did anything. --- diff --git a/src/lib/process/daemon.c b/src/lib/process/daemon.c index 671579838e..4836b3951c 100644 --- a/src/lib/process/daemon.c +++ b/src/lib/process/daemon.c @@ -102,15 +102,16 @@ start_daemon(void) /** Finish putting the process into daemon mode: drop standard fds, and tell * the parent process to exit. (Note: it's safe to call this more than once: * calls after the first are ignored. Calls start_daemon first if it hasn't - * been called already.) + * been called already.) Return true if we actually did a fork; false if we + * didn't. */ -void +int finish_daemon(const char *desired_cwd) { int nullfd; char c = '.'; if (finish_daemon_called) - return; + return 0; if (!start_daemon_called) start_daemon(); finish_daemon_called = 1; @@ -149,6 +150,8 @@ finish_daemon(const char *desired_cwd) log_err(LD_GENERAL,"write failed. Exiting."); } close(daemon_filedes[1]); + + return 0; } #else /* !(!defined(_WIN32)) */ /* defined(_WIN32) */ diff --git a/src/lib/process/daemon.h b/src/lib/process/daemon.h index 1f26e92221..08cab17e12 100644 --- a/src/lib/process/daemon.h +++ b/src/lib/process/daemon.h @@ -12,6 +12,6 @@ #define TOR_DAEMON_H void start_daemon(void); -void finish_daemon(const char *desired_cwd); +int finish_daemon(const char *desired_cwd); #endif