summaryrefslogtreecommitdiffstats
path: root/src/openvpn/openvpn.c
diff options
context:
space:
mode:
authorSteffan Karger <steffan@karger.me>2015-04-27 16:28:57 +0200
committerGert Doering <gert@greenie.muc.de>2015-05-26 15:57:35 +0200
commitda9b292733e929a2900dc32d37f0424c3d588366 (patch)
treecbed11e68fa9726566cfd323153d7ff690ad3781 /src/openvpn/openvpn.c
parent6478c1f359e6b0ea2046d9e2801830753e53c06a (diff)
downloadopenvpn-da9b292733e929a2900dc32d37f0424c3d588366.tar.gz
openvpn-da9b292733e929a2900dc32d37f0424c3d588366.tar.xz
openvpn-da9b292733e929a2900dc32d37f0424c3d588366.zip
Call daemon() before initializing crypto library
But keep the chdir to / at the place where deamon() was before, to preserve the current behaviour wrt relative paths in the config. This should fix the issue reported in trac #480, without changing the behaviour visible to the end user. Note that by moving the daemon() call to an earlier stage of the init process, we no longer have to call platform_mlockall() again, or do a pkcs11_forkFixup(). Signed-off-by: Steffan Karger <steffan@karger.me> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1430144937-4149-1-git-send-email-steffan@karger.me> URL: http://article.gmane.org/gmane.network.openvpn.devel/9609 Signed-off-by: Gert Doering <gert@greenie.muc.de>
Diffstat (limited to 'src/openvpn/openvpn.c')
-rw-r--r--src/openvpn/openvpn.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/openvpn/openvpn.c b/src/openvpn/openvpn.c
index fd87fc1..2f327f3 100644
--- a/src/openvpn/openvpn.c
+++ b/src/openvpn/openvpn.c
@@ -229,6 +229,10 @@ openvpn_main (int argc, char *argv[])
if (do_test_crypto (&c.options))
break;
+ /* become a daemon if --daemon */
+ if (c.first_time)
+ c.did_we_daemonize = possibly_become_daemon (&c.options);
+
#ifdef ENABLE_MANAGEMENT
/* open management subsystem */
if (!open_management (&c))