From 55641d204dc33163fdac8a07287a2e3875cde25c Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 5 Jun 2019 11:45:21 +0200 Subject: [PATCH] interfaces: actually just create the OpenVPN if needed --- src/etc/inc/interfaces.inc | 3 +-- src/etc/inc/plugins.inc.d/openvpn.inc | 10 ++++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 3221630d2..28ee46725 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2400,8 +2400,7 @@ function interface_configure($verbose = false, $interface = 'wan', $reload = fal interfaces_vlan_configure(false, $interface_to_check); interfaces_lagg_configure(false, $interface_to_check); interfaces_bridge_configure(false, 0, $interface_to_check); - /* XXX weird: create interface, but maybe do not start yet */ - plugins_configure('openvpn_reload', false, array($interface)); + plugins_configure('openvpn_prepare', false, array($interface_to_check)); } /* Disable Accepting router advertisements unless specifically requested */ diff --git a/src/etc/inc/plugins.inc.d/openvpn.inc b/src/etc/inc/plugins.inc.d/openvpn.inc index b7f815055..7713d7865 100644 --- a/src/etc/inc/plugins.inc.d/openvpn.inc +++ b/src/etc/inc/plugins.inc.d/openvpn.inc @@ -35,9 +35,9 @@ function openvpn_configure() { return array( 'crl' => array('openvpn_refresh_crls:0'), - 'openvpn_reload' => array('openvpn_configure_do:2'), - 'openvpn_prepare' => array('openvpn_prepare_all'), + 'openvpn_prepare' => array('openvpn_prepare:2'), 'remote' => array('openvpn_configure_do'), + 'openvpn' => array('openvpn_configure_do:2'), 'vpn' => array('openvpn_configure_do:2'), ); } @@ -1142,7 +1142,7 @@ function openvpn_fetch_csc_list() return $result; } -function openvpn_prepare_all($verbose = false) +function openvpn_prepare($verbose = false, $interface = null) { global $config; @@ -1158,7 +1158,9 @@ function openvpn_prepare_all($verbose = false) foreach (array('server', 'client') as $mode) { if (isset($config['openvpn']["openvpn-{$mode}"])) { foreach ($config['openvpn']["openvpn-{$mode}"] as &$settings) { - openvpn_reconfigure($mode, $settings, true); + if (empty($interface) || $interface == "ovpn${mode[0]}{$settings['vpnid']}") { + openvpn_reconfigure($mode, $settings, true); + } } } }