diff options
author | Martin Fuchs <mfuchs@pfsense.org> | 2007-12-21 20:09:23 +0000 |
---|---|---|
committer | Martin Fuchs <mfuchs@pfsense.org> | 2007-12-21 20:09:23 +0000 |
commit | 6236682824a1e6d43ea554b822631cfb23eb1a37 (patch) | |
tree | 3ea21d0a6f5c95da141a0f7cac53ce674440774a | |
parent | 32487ea8d0a60064ea4c1c235c761e21aff46165 (diff) | |
download | pfsense-6236682824a1e6d43ea554b822631cfb23eb1a37.zip pfsense-6236682824a1e6d43ea554b822631cfb23eb1a37.tar.gz |
OpenVPN-multi-interface-patches by Fernando Tarlá Cardoso Lemos
-rw-r--r-- | etc/inc/openvpn.inc | 10 | ||||
-rw-r--r-- | usr/local/pkg/openvpn.xml | 14 |
2 files changed, 23 insertions, 1 deletions
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc index 81aabc0..ac6318f 100644 --- a/etc/inc/openvpn.inc +++ b/etc/inc/openvpn.inc @@ -341,6 +341,15 @@ EOD; $openvpn_conf .= "push \"route $ip $mask\"\n"; } + if ($settings['bind_to_iface'] == 'on') { + $iface = $settings['interface']; + $iface = convert_friendly_interface_to_real_interface_name($iface); + $line = trim(shell_exec("ifconfig $iface | grep inet | grep -v inet6")); + list($dummy, $ip, $dummy2, $dummy3) = explode(' ', $line); + + $openvpn_conf .= "local {$ip}\n"; + } + // The port we'll listen at $openvpn_conf .= "lport {$settings['local_port']}\n"; @@ -400,7 +409,6 @@ EOD; $openvpn_conf .= "remote {$settings['serveraddr']} {$settings['serverport']}\n"; if ($settings['auth_method'] == 'pki') $openvpn_conf .= "client\n"; - if ($settings['use_dynamicport']) $openvpn_conf .= "nobind\n"; else // The port we'll listen at diff --git a/usr/local/pkg/openvpn.xml b/usr/local/pkg/openvpn.xml index 8b3271d..bc4ac00 100644 --- a/usr/local/pkg/openvpn.xml +++ b/usr/local/pkg/openvpn.xml @@ -64,6 +64,20 @@ </options> <default_value>UDP</default_value> </field> + <field> + <fieldname>bind_to_iface</fieldname> + <fielddescr>Bind to an interface</fielddescr> + <description>Check to bind on a specific network interface.</description> + <type>checkbox</type> + <enablefields>interface</enablefields> + </field> + <field> + <fieldname>interface</fieldname> + <fielddescr>Interface</fielddescr> + <description>The interface on which the OpenVPN daemon will listen.</description> + <type>interfaces_selection</type> + <default_value>wan</default_value> + </field> <field> <fieldname>dynamic_ip</fieldname> <fielddescr>Dynamic IP</fielddescr> |