diff options
author | jim-p <jimp@pfsense.org> | 2016-08-01 11:43:03 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2016-08-01 11:45:28 -0400 |
commit | f003f8db0eaba3837c0e2d2566181a51689a3107 (patch) | |
tree | 65b48af46249c7897e61d10e2b1cea9dbb1935f5 /src/etc/rc.carpmaster | |
parent | bfbfa4dd254c110db4122925d0a3716a34d4c664 (diff) | |
download | pfsense-f003f8db0eaba3837c0e2d2566181a51689a3107.zip pfsense-f003f8db0eaba3837c0e2d2566181a51689a3107.tar.gz |
Some small improvements to OpenVPN server handling when using CARP VIPs in Gateway Groups. Might help with issue #6607
Diffstat (limited to 'src/etc/rc.carpmaster')
-rwxr-xr-x | src/etc/rc.carpmaster | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/etc/rc.carpmaster b/src/etc/rc.carpmaster index 0b355cc..d536948 100755 --- a/src/etc/rc.carpmaster +++ b/src/etc/rc.carpmaster @@ -80,9 +80,20 @@ if (is_array($config['openvpn']) && is_array($config['openvpn']['openvpn-client' } if (is_array($config['openvpn']) && is_array($config['openvpn']['openvpn-server'])) { foreach ($config['openvpn']['openvpn-server'] as $settings) { + if (substr($settings['interface'], 0, 4) == '_vip') { + $openvpn_vip = $settings['interface']; + } else if (is_array($a_groups[$settings['interface']])) { + // interface is a gateway group, check CARP VIP + if (substr($a_groups[$settings['interface']][0]['vip'], 0, 4) == '_vip') { + $openvpn_vip = $a_groups[$settings['interface']][0]['vip']; + } + } else { + // this OpenVPN instance not on a CARP IP + continue; + } foreach ($vips as $vip) { - if ($settings['interface'] == "_vip{$vip['uniqid']}") { - log_error("Starting OpenVPN instance on {$friendly_descr} because of transition to CARP master."); + if ($openvpn_vip == "_vip{$vip['uniqid']}") { + log_error("Starting OpenVPN server instance on {$friendly_descr} because of transition to CARP master."); openvpn_restart('server', $settings); } } |