From 29cb71425d0428833d52489b97589f7465a8a164 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sun, 12 Aug 2018 14:21:27 +0200 Subject: [PATCH] OpenVPN p2p_tls with /30 fix, for https://github.com/opnsense/core/issues/2624 --- src/etc/inc/plugins.inc.d/openvpn.inc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/etc/inc/plugins.inc.d/openvpn.inc b/src/etc/inc/plugins.inc.d/openvpn.inc index 9952b862b..28d6a2f6f 100644 --- a/src/etc/inc/plugins.inc.d/openvpn.inc +++ b/src/etc/inc/plugins.inc.d/openvpn.inc @@ -636,12 +636,19 @@ function openvpn_reconfigure($mode, $settings, $device_only = false) $conf .= "client-disconnect \"/usr/local/etc/inc/plugins.inc.d/openvpn/attributes.sh {$mode_id}\"\n"; break; case 'server_tls': - case 'p2p_tls': // For non user auth types setup client specific overrides, // user authenticated ones are commissioned using the auth // script in option auth-user-pass-verify. $conf .= "client-connect \"/usr/local/etc/inc/plugins.inc.d/openvpn/ovpn_setup_cso.php {$mode_id}\"\n"; break; + case 'p2p_tls': + // same as server_tls, but only valid if cidr < 30, without + // server directive client-connect is not valid. + // XXX: IPv6 is likely flawed, see "server" directive too. + if (!empty($ip) && !empty($mask) && ($cidr < 30)) { + $conf .= "client-connect \"/usr/local/etc/inc/plugins.inc.d/openvpn/ovpn_setup_cso.php {$mode_id}\"\n"; + } + break; default: break; }