Browse Source

When RunAsDaemon is set, crypto_postfork() as needed

Nick Mathewson 5 years ago
parent
commit
4f300d547d
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/app/config/config.c

+ 4 - 1
src/app/config/config.c

@@ -81,6 +81,7 @@
 #include "core/mainloop/cpuworker.h"
 #include "lib/crypt_ops/crypto_rand.h"
 #include "lib/crypt_ops/crypto_util.h"
+#include "lib/crypt_ops/crypto_init.h"
 #include "feature/dircache/dirserv.h"
 #include "feature/relay/dns.h"
 #include "core/or/dos.h"
@@ -2026,7 +2027,9 @@ options_act(const or_options_t *old_options)
   /* Finish backgrounding the process */
   if (options->RunAsDaemon) {
     /* We may be calling this for the n'th time (on SIGHUP), but it's safe. */
-    finish_daemon(options->DataDirectory);
+    int forked = finish_daemon(options->DataDirectory);
+    if (forked)
+      crypto_postfork();
   }
 
   /* See whether we need to enable/disable our once-a-second timer. */