Fixed double fork bug.

Pre-2.1_beta5


git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@656 e7ae566f-a301-0410-adde-c780ea21d3b5
This commit is contained in:
james 2005-10-17 13:20:21 +00:00
parent e1f07509eb
commit 90e105d218
4 changed files with 11 additions and 7 deletions

View file

@ -3,6 +3,10 @@ Copyright (C) 2002-2005 OpenVPN Solutions LLC <info@openvpn.net>
$Id$
2005.10.xx -- Version 2.1-beta5
* More PKCS#11 additions/changes (Alon Bar-Lev).
2005.10.17 -- Version 2.1-beta4
* Fixed bug introduced in 2.1-beta3 where management

View file

@ -25,7 +25,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.50)
AC_INIT([OpenVPN], [2.1_beta4], [openvpn-users@lists.sourceforge.net], [openvpn])
AC_INIT([OpenVPN], [2.1_beta5], [openvpn-users@lists.sourceforge.net], [openvpn])
AM_CONFIG_HEADER(config.h)
AC_CONFIG_SRCDIR(syshead.h)

6
init.c
View file

@ -1860,7 +1860,7 @@ do_compute_occ_strings (struct context *c)
static void
do_init_first_time (struct context *c)
{
if (c->first_time && !c->c2.did_we_daemonize)
if (c->first_time && !c->did_we_daemonize)
{
/* get user and/or group that we want to setuid/setgid to */
c->c2.uid_gid_specified =
@ -1871,10 +1871,10 @@ do_init_first_time (struct context *c)
get_pid_file (c->options.writepid, &c->c2.pid_state);
/* become a daemon if --daemon */
c->c2.did_we_daemonize = possibly_become_daemon (&c->options, c->first_time);
c->did_we_daemonize = possibly_become_daemon (&c->options, c->first_time);
/* should we disable paging? */
if (c->options.mlock && c->c2.did_we_daemonize)
if (c->options.mlock && c->did_we_daemonize)
do_mlockall (true); /* call again in case we daemonized */
/* save process ID in a file */

View file

@ -346,9 +346,6 @@ struct context_2
struct user_state user_state;
struct group_state group_state;
/* temporary variable */
bool did_we_daemonize;
/* should we print R|W|r|w to console on packet transfers? */
bool log_rw;
@ -453,6 +450,9 @@ struct context
struct plugin_list *plugins;
bool plugins_owned;
/* set to true after we daemonize */
bool did_we_daemonize;
/* level 1 context is preserved for
SIGUSR1 restarts, but initialized
for SIGHUP restarts */