[tor-commits] [tor/master] Make finish_daemon() return a boolean to say whether it did anything.

nickm at torproject.org nickm at torproject.org
Wed Sep 5 00:47:13 UTC 2018


commit 622a2c6bee19af3bab0e84702a36ff2df39db7e7
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Aug 8 16:59:53 2018 -0400

    Make finish_daemon() return a boolean to say whether it did anything.
---
 src/lib/process/daemon.c | 9 ++++++---
 src/lib/process/daemon.h | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/process/daemon.c b/src/lib/process/daemon.c
index 671579838..4836b3951 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 1f26e9222..08cab17e1 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





More information about the tor-commits mailing list