From 74a556a3caa67adb0adac055ffb9321e264e1b71 Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 9 Nov 2011 12:48:38 -0500 Subject: [PATCH] Rework this a little since using tap+tunnel network is valid, but using tap+tunnel network+bridging is not (will not do what the user expects/wants) --- etc/inc/openvpn.inc | 6 +++--- usr/local/www/vpn_openvpn_server.php | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index ab30200248..8fa358fe27 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -409,12 +409,12 @@ function openvpn_reconfigure($mode, $settings) { // If the CIDR is less than a /30, OpenVPN will complain if you try to // use the server directive. It works for a single client without it. // See ticket #1417 - if (($settings['dev_mode'] != "tap") && ($cidr < 30)) { + if (!empty($ip) && !empty($mask) && ($cidr < 30)) { $conf .= "server {$ip} {$mask}\n"; $conf .= "client-config-dir {$g['varetc_path']}/openvpn-csc\n"; } case 'p2p_shared_key': - if ($settings['dev_mode'] != "tap") { + if (!empty($ip) && !empty($mask)) { $baselong = ip2long32($ip) & ip2long($mask); $ip1 = long2ip32($baselong + 1); $ip2 = long2ip32($baselong + 2); @@ -424,7 +424,7 @@ function openvpn_reconfigure($mode, $settings) { case 'server_tls': case 'server_user': case 'server_tls_user': - if ($settings['dev_mode'] != "tap") { + if (!empty($ip) && !empty($mask)) { $conf .= "server {$ip} {$mask}\n"; if(is_ipaddr($ipv6)) $conf .= "server-ipv6 {$ipv6}/{$prefix}\n"; diff --git a/usr/local/www/vpn_openvpn_server.php b/usr/local/www/vpn_openvpn_server.php index be1255c0f3..ebf0bab311 100644 --- a/usr/local/www/vpn_openvpn_server.php +++ b/usr/local/www/vpn_openvpn_server.php @@ -295,6 +295,8 @@ if ($_POST) { $reqdfields[] = 'tunnel_network'; $reqdfieldsn[] = gettext('Tunnel network'); } else { + if ($pconfig['serverbridge_dhcp'] && $pconfig['tunnel_network']) + $input_errors[] = gettext("Using a tunnel network and server bridge settings together is not allowed."); if (($pconfig['serverbridge_dhcp_start'] && !$pconfig['serverbridge_dhcp_end']) || (!$pconfig['serverbridge_dhcp_start'] && $pconfig['serverbridge_dhcp_end'])) $input_errors[] = gettext("Server Bridge DHCP Start and End must both be empty, or defined."); @@ -603,16 +605,14 @@ function tuntap_change() { value = document.iform.dev_mode.options[index].value; switch(value) { case "tun": - document.getElementById("ipv4_tunnel_network").style.display=""; - document.getElementById("ipv6_tunnel_network").style.display=""; + document.getElementById("ipv4_tunnel_network").className="vncellreq"; document.getElementById("serverbridge_dhcp").style.display="none"; document.getElementById("serverbridge_interface").style.display="none"; document.getElementById("serverbridge_dhcp_start").style.display="none"; document.getElementById("serverbridge_dhcp_end").style.display="none"; break; case "tap": - document.getElementById("ipv4_tunnel_network").style.display="none"; - document.getElementById("ipv6_tunnel_network").style.display="none"; + document.getElementById("ipv4_tunnel_network").className="vncell"; if (!p2p) { document.getElementById("serverbridge_dhcp").style.display=""; document.getElementById("serverbridge_interface").style.display=""; @@ -1052,8 +1052,8 @@ if ($savemsg) - - + +
@@ -1066,8 +1066,8 @@ if ($savemsg) "to connecting clients. (see Address Pool)"); ?> - - + +