mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Merge remote branch 'mainline/master'
This commit is contained in:
commit
1364604bb5
@ -299,7 +299,7 @@ function return_gateways_array($disabled = false) {
|
||||
$gateway['gateway'] = get_interface_gateway($ifname, $gateway['dynamic']);
|
||||
$gateway['interface'] = get_real_interface($ifname);
|
||||
$gateway['friendlyiface'] = $ifname;
|
||||
$gateway['name'] = "{$ifname}";
|
||||
$gateway['name'] = "{$friendly}_GW";
|
||||
$gateway['attribute'] = "system";
|
||||
|
||||
/* Loopback dummy for dynamic interfaces without a IP */
|
||||
|
||||
@ -245,51 +245,24 @@ function system_routing_configure() {
|
||||
}
|
||||
|
||||
/* Enable fast routing, if enabled */
|
||||
/* XXX: More checks need to be done for subsystems that are not compatibel with fast routing. */
|
||||
if(isset($config['staticroutes']['enablefastrouting']) && !isset($config['ipsec']['enable']))
|
||||
mwexec("/sbin/sysctl net.inet.ip.fastforwarding=1");
|
||||
|
||||
$route_str = exec_command("/usr/bin/netstat -rnf inet");
|
||||
|
||||
/* clear out old routes, if necessary */
|
||||
if (file_exists("{$g['vardb_path']}/routes.db")) {
|
||||
$fd = fopen("{$g['vardb_path']}/routes.db", "r");
|
||||
if (!$fd) {
|
||||
printf("Error: cannot open routes DB file in system_routing_configure().\n");
|
||||
return 1;
|
||||
}
|
||||
while (!feof($fd)) {
|
||||
$oldrt = trim(fgets($fd));
|
||||
if (($oldrt) && (stristr($route_str, $oldrt)))
|
||||
mwexec("/sbin/route delete " . escapeshellarg($oldrt));
|
||||
}
|
||||
fclose($fd);
|
||||
unlink("{$g['vardb_path']}/routes.db");
|
||||
}
|
||||
|
||||
if (false) {
|
||||
/* if list */
|
||||
$iflist = get_configured_interface_list();
|
||||
|
||||
$dont_remove_route = false;
|
||||
foreach ($iflist as $ifent => $ifname) {
|
||||
/*
|
||||
* XXX: The value of this is really when this function can take
|
||||
* an interface as parameter.
|
||||
*/
|
||||
/* do not process interfaces that will end up with gateways */
|
||||
if (interface_has_gateway($ifent) ||
|
||||
$config['interfaces'][$ifent]['ipaddr'] == "carpdev-dhcp") {
|
||||
$dont_remove_route = true;
|
||||
break;
|
||||
$gatewayip = "";
|
||||
$interfacegw = "";
|
||||
/* tack on all the hard defined gateways as well */
|
||||
if (is_array($config['gateways']['gateway_item'])) {
|
||||
foreach ($config['gateways']['gateway_item'] as $gateway) {
|
||||
if (isset($gateway['defaultgw'])) {
|
||||
if ($gateway['gateway'] == "dynamic")
|
||||
$gateway['gateway'] = get_interface_gateway($gateway['interface']);
|
||||
$gatewayip = $gateway['gateway'];
|
||||
$interfacegw = $gateway['interface'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($dont_remove_route == false) {
|
||||
/* remove default route */
|
||||
mwexec("/sbin/route delete default", true);
|
||||
}
|
||||
}
|
||||
|
||||
$dont_add_route = false;
|
||||
/* if OLSRD is enabled, allow WAN to house DHCP. */
|
||||
if($config['installedpackages']['olsrd']) {
|
||||
@ -300,33 +273,15 @@ function system_routing_configure() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($dont_add_route == false) {
|
||||
if(is_array($config['gateways']['gateway_item'])) {
|
||||
foreach($config['gateways']['gateway_item'] as $gateway) {
|
||||
if(isset($gateway['defaultgw'])) {
|
||||
$gatewayip = $gateway['gateway'];
|
||||
$interfacegw = $gateway['interface'];
|
||||
/* This handles the case where a dynamic gateway is choosen as default. */
|
||||
if (!is_ipaddr($gatewayip))
|
||||
$gatewayip = get_interface_gateway($interfacegw);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(($interfacegw <> "bgpd") && (is_ipaddr($gatewayip))) {
|
||||
preg_match("/default[ ]+([0-9].*?)[ ]+/i", $route_str, $elements);
|
||||
if(trim($elements[1]) != "$gatewayip") {
|
||||
mwexec("/sbin/route delete default " . escapeshellarg($gatewayip), true);
|
||||
}
|
||||
mwexec("/sbin/route add default " . escapeshellarg($gatewayip), true);
|
||||
}
|
||||
} else {
|
||||
log_error("SYSTEM: We do not have a gateways array in our XML. Is this configuration damaged?");
|
||||
/* adding gateway for 1.2-style configs without the new
|
||||
gateway setup configured.
|
||||
Force WAN to be default gateway because that is the
|
||||
1.2 behavior.
|
||||
*/
|
||||
if (($interfacegw <> "bgpd") && (is_ipaddr($gatewayip)))
|
||||
mwexec("/sbin/route delete default; /sbin/route add default " . escapeshellarg($gatewayip), true);
|
||||
else {
|
||||
/* Adding gateway for 1.2-style configs without the new
|
||||
* gateway setup configured.
|
||||
* Force WAN to be default gateway because that is the 1.2 behavior.
|
||||
*/
|
||||
log_error("SYSTEM: We do not have a default gateway in our config. Is this configuration damaged?");
|
||||
if (is_ipaddr($config['interfaces']['wan']['gateway'])) {
|
||||
$gatewayip = $config['interfaces']['wan']['gateway'];
|
||||
mwexec("/sbin/route add default " . escapeshellarg($gatewayip), true);
|
||||
@ -335,43 +290,35 @@ function system_routing_configure() {
|
||||
}
|
||||
|
||||
if (is_array($config['staticroutes']['route'])) {
|
||||
|
||||
$fd = fopen("{$g['vardb_path']}/routes.db", "w");
|
||||
if (!$fd) {
|
||||
printf("Error: cannot open routes DB file in system_routing_configure().\n");
|
||||
return 1;
|
||||
}
|
||||
$route_str = array();
|
||||
exec("/usr/bin/netstat -rnf inet | /usr/bin/cut -d \" \" -f 1", $route_str);
|
||||
$route_str = array_flip($route_str);
|
||||
$gateways_arr = return_gateways_array();
|
||||
|
||||
foreach ($config['staticroutes']['route'] as $rtent) {
|
||||
unset($gatewayip);
|
||||
unset($interfacegw);
|
||||
if(is_array($config['gateways']['gateway_item'])) {
|
||||
foreach($config['gateways']['gateway_item'] as $gateway) {
|
||||
if($rtent['gateway'] == $gateway['name']) {
|
||||
$gatewayip = $gateway['gateway'];
|
||||
$interfacegw = $gateway['interface'];
|
||||
/* This handles the case where a dynamic gateway is choosen. */
|
||||
if (!is_ipaddr($gatewayip))
|
||||
$gatewayip = get_interface_gateway($interfacegw);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if((is_ipaddr($rtent['gateway'])) && empty($gatewayip)) {
|
||||
$gatewayip = "";
|
||||
if (isset($gateways_arr[$rtent['gateway']])) {
|
||||
$gatewayip = $gateways_arr[$rtent['gateway']]['gateway'];
|
||||
$interfacegw = get_real_interface($rtent['interface']);
|
||||
} else if (is_ipaddr($rtent['gateway'])) {
|
||||
$gatewayip = $rtent['gateway'];
|
||||
$interfacegw = $rtent['interface'];
|
||||
}
|
||||
if((isset($rtent['interfacegateway'])) && (! is_ipaddr($gatewayip))) {
|
||||
mwexec("/sbin/route add " . escapeshellarg($rtent['network']) .
|
||||
" -iface " . escapeshellarg(convert_friendly_interface_to_real_interface_name($interfacegw)));
|
||||
} else {
|
||||
mwexec("/sbin/route add " . escapeshellarg($rtent['network']) .
|
||||
" " . escapeshellarg($gatewayip));
|
||||
log_error("Static Routes: Gateway ip could not be found for {$rtent['network']}");
|
||||
continue;
|
||||
}
|
||||
|
||||
$action = "add";
|
||||
if (isset($route_str[$rtent['network']]))
|
||||
$action = "change";
|
||||
|
||||
if (is_ipaddr($gatewayip)) {
|
||||
mwexec("/sbin/route {$action} " . escapeshellarg($rtent['network']) .
|
||||
" " . escapeshellarg($gatewayip));
|
||||
} else if (!empty($interfacegw)) {
|
||||
mwexec("/sbin/route {$action} " . escapeshellarg($rtent['network']) .
|
||||
" -iface " . escapeshellarg($interfacegw));
|
||||
}
|
||||
/* record route so it can be easily removed later (if necessary) */
|
||||
fwrite($fd, $rtent['network'] . "\n");
|
||||
}
|
||||
fclose($fd);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@ -921,9 +921,9 @@ function upgrade_046_to_047() {
|
||||
$ph1ent['myid_type'] = "fqdn";
|
||||
$ph1ent['myid_data'] = $tunnel['p1']['myident']['fqdn'];
|
||||
}
|
||||
if (isset($tunnel['p1']['myident']['user_fqdn'])) {
|
||||
if (isset($tunnel['p1']['myident']['ufqdn'])) {
|
||||
$ph1ent['myid_type'] = "user_fqdn";
|
||||
$ph1ent['myid_data'] = $tunnel['p1']['myident']['user_fqdn'];
|
||||
$ph1ent['myid_data'] = $tunnel['p1']['myident']['ufqdn'];
|
||||
}
|
||||
if (isset($tunnel['p1']['myident']['asn1dn'])) {
|
||||
$ph1ent['myid_type'] = "asn1dn";
|
||||
@ -1343,7 +1343,7 @@ function upgrade_051_to_052() {
|
||||
$server['tunnel_network'] = $server['addresspool'];
|
||||
unset($server['addresspool']);
|
||||
if (isset($server['use_lzo'])) {
|
||||
$server['compress'] = true;
|
||||
$server['compression'] = "on";
|
||||
unset($server['use_lzo']);
|
||||
}
|
||||
if ($server['nopool'])
|
||||
@ -1439,7 +1439,7 @@ function upgrade_051_to_052() {
|
||||
$client['proxy_addr'] = $client['poxy_hostname'];
|
||||
unset($client['proxy_addr']);
|
||||
if (isset($client['use_lzo'])) {
|
||||
$client['compress'] = true;
|
||||
$client['compression'] = "on";
|
||||
unset($client['use_lzo']);
|
||||
}
|
||||
$client['resolve_retry'] = $client['infiniteresolvretry'];
|
||||
|
||||
@ -728,7 +728,7 @@ function display_row($trc, $value, $fieldname, $type, $rowhelper, $size) {
|
||||
} else {
|
||||
$source_value = $opt[$rowhelper['value']];
|
||||
}
|
||||
if($opt['value'] == $value)
|
||||
if($source_value == $value)
|
||||
$selected = " SELECTED";
|
||||
$text .= "<option value='" . $source_value . "'" . $selected . ">" . $source_name . "</option>";
|
||||
echo "<option value='" . $source_value . "'" . $selected . ">" . $source_name . "</option>\n";
|
||||
|
||||
@ -59,6 +59,7 @@ $pconfig['disablenatreflection'] = $config['system']['disablenatreflection'];
|
||||
$pconfig['reflectiontimeout'] = $config['system']['reflectiontimeout'];
|
||||
$pconfig['bypassstaticroutes'] = isset($config['filter']['bypassstaticroutes']);
|
||||
$pconfig['disablescrub'] = isset($config['system']['disablescrub']);
|
||||
$pconfig['tftpinterface'] = $config['system']['tftpinterface'];
|
||||
|
||||
if ($_POST) {
|
||||
|
||||
@ -321,7 +322,7 @@ function update_description(itemnum) {
|
||||
<option value="<?=$ifent;?>" <?php if (stristr($pconfig['tftpinterface'], $ifent)) echo "selected"; ?>><?=gettext($ifdesc);?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<strong>Choose the interfaces where you want TFTP proxy help to be enabled.</strong>
|
||||
<strong>Choose the interfaces where you want TFTP proxy helper to be enabled.</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -47,11 +47,8 @@ require_once("shaper.inc");
|
||||
if (!is_array($config['staticroutes']['route']))
|
||||
$config['staticroutes']['route'] = array();
|
||||
|
||||
if (!is_array($config['gateways']['gateway_item']))
|
||||
$config['gateways']['gateway_item'] = array();
|
||||
|
||||
$a_routes = &$config['staticroutes']['route'];
|
||||
$a_gateways = &$config['gateways']['gateway_item'];
|
||||
$a_gateways = return_gateways_array(true);
|
||||
$changedesc = "Static Routes: ";
|
||||
|
||||
if ($_POST) {
|
||||
@ -92,6 +89,7 @@ if ($_POST) {
|
||||
if ($_GET['act'] == "del") {
|
||||
if ($a_routes[$_GET['id']]) {
|
||||
$changedesc .= "removed route to " . $a_routes[$_GET['id']['route']];
|
||||
mwexec("/sbin/route delete " . escapeshellarg($a_routes[$_GET['id']]['network']));
|
||||
unset($a_routes[$_GET['id']]);
|
||||
write_config($changedesc);
|
||||
mark_subsystem_dirty('staticroutes');
|
||||
@ -160,17 +158,12 @@ include("head.inc");
|
||||
</td>
|
||||
<td class="listr" ondblclick="document.location='system_routes_edit.php?id=<?=$i;?>';">
|
||||
<?php
|
||||
echo $route['gateway'] . " ";
|
||||
echo $a_gateways[$route['gateway']]['name'] . " ";
|
||||
?>
|
||||
</td>
|
||||
<td class="listr" ondblclick="document.location='system_routes_edit.php?id=<?=$i;?>';">
|
||||
<?php
|
||||
foreach($a_gateways as $gateway) {
|
||||
if($gateway['name'] == $route['gateway']) {
|
||||
echo strtoupper($gateway['interface']) . " ";
|
||||
}
|
||||
}
|
||||
|
||||
echo convert_friendly_interface_to_friendly_descr($a_gateways[$route['gateway']]['friendlyiface']) . " ";
|
||||
?>
|
||||
</td>
|
||||
<td class="listbg" ondblclick="document.location='system_routes_edit.php?id=<?=$i;?>';">
|
||||
|
||||
@ -57,11 +57,9 @@ require("guiconfig.inc");
|
||||
|
||||
if (!is_array($config['staticroutes']['route']))
|
||||
$config['staticroutes']['route'] = array();
|
||||
if (!is_array($config['gateways']['gateway_item']))
|
||||
$config['gateways']['gateway_item'] = array();
|
||||
|
||||
$a_routes = &$config['staticroutes']['route'];
|
||||
$a_gateways = &$config['gateways']['gateway_item'];
|
||||
$a_gateways = return_gateways_array(true);
|
||||
|
||||
$id = $_GET['id'];
|
||||
if (isset($_POST['id']))
|
||||
@ -99,13 +97,7 @@ if ($_POST) {
|
||||
$input_errors[] = "A valid destination network bit count must be specified.";
|
||||
}
|
||||
if ($_POST['gateway']) {
|
||||
$match = false;
|
||||
foreach($a_gateways as $gateway) {
|
||||
if(in_array($_POST['gateway'], $gateway)) {
|
||||
$match = true;
|
||||
}
|
||||
}
|
||||
if(!$match)
|
||||
if (!isset($a_gateways[$_POST['gateway']]))
|
||||
$input_errors[] = "A valid gateway must be specified.";
|
||||
}
|
||||
|
||||
@ -174,11 +166,19 @@ include("head.inc");
|
||||
<td width="78%" class="vtable">
|
||||
<select name="gateway" id="gateway" class="formselect">
|
||||
<?php
|
||||
foreach ($a_gateways as $gateway): ?>
|
||||
<option value="<?=$gateway['name'];?>" <?php if ($gateway['name'] == $pconfig['gateway']) echo "selected"; ?>>
|
||||
<?=htmlspecialchars($gateway['name']);?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
foreach ($a_gateways as $gateway) {
|
||||
if ($gateway['attribute'] == "system") {
|
||||
echo "<option value='{$gateway['friendlyiface']}' ";
|
||||
if ($gateway['friendlyiface'] == $pconfig['gateway'])
|
||||
echo "selected";
|
||||
} else {
|
||||
echo "<option value='{$gateway['name']}' ";
|
||||
if ($gateway['name'] == $pconfig['gateway'])
|
||||
echo "selected";
|
||||
}
|
||||
echo ">" . htmlspecialchars($gateway['name']) . "</option>\n";
|
||||
}
|
||||
?>
|
||||
</select> <br />
|
||||
<div id='addgwbox'>
|
||||
Choose which gateway this route applies to or <a OnClick="show_add_gateway();" href="#">add a new one</a>.
|
||||
|
||||
@ -125,7 +125,7 @@ if(!$pconfig['backend'])
|
||||
<td width="78%" class="vtable">
|
||||
<input name="session_timeout" id="session_timeout" type="text" size="8" value="<?=htmlspecialchars($pconfig['session_timeout']);?>" />
|
||||
<br />
|
||||
<?=gettext("Time in minutes to expire idle management sessions. The default is 4 hours (240 minutes). <br/> 0 means to never expire sessions. NOTE: This is a security risk!");?><br />
|
||||
<?=gettext("Time in minutes to expire idle management sessions. The default is 4 hours (240 minutes). <br/> Enter 0 to never expire sessions. NOTE: This is a security risk!");?><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@ -112,6 +112,7 @@ if($_GET['act']=="edit"){
|
||||
$pconfig['passtos'] = $a_server[$id]['passtos'];
|
||||
$pconfig['client2client'] = $a_server[$id]['client2client'];
|
||||
|
||||
$pconfig['dynamic_ip'] = $a_server[$id]['dynamic_ip'];
|
||||
$pconfig['pool_enable'] = $a_server[$id]['pool_enable'];
|
||||
|
||||
$pconfig['dns_domain'] = $a_server[$id]['dns_domain'];
|
||||
@ -299,6 +300,7 @@ if ($_POST) {
|
||||
$server['passtos'] = $pconfig['passtos'];
|
||||
$server['client2client'] = $pconfig['client2client'];
|
||||
|
||||
$server['dynamic_ip'] = $pconfig['dynamic_ip'];
|
||||
$server['pool_enable'] = $pconfig['pool_enable'];
|
||||
|
||||
if ($pconfig['dns_domain_enable'])
|
||||
@ -905,6 +907,24 @@ function netbios_change() {
|
||||
<tr>
|
||||
<td colspan="2" valign="top" class="listtopic">Client Settings</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncell">Dynamic IP</td>
|
||||
<td width="78%" class="vtable">
|
||||
<table border="0" cellpadding="2" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<?php set_checked($pconfig['dynamic_ip'],$chk); ?>
|
||||
<input name="dynamic_ip" type="checkbox" id="dynamic_ip" value="yes" <?=$chk;?>">
|
||||
</td>
|
||||
<td>
|
||||
<span class="vexpl">
|
||||
Allow connected clients to retain their connections if their IP address changes.<br>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncell">Address Pool</td>
|
||||
<td width="78%" class="vtable">
|
||||
|
||||
@ -538,6 +538,8 @@ function step12_submitphpaction() {
|
||||
$server['passtos'] = $pconfig['step10']['tos'];
|
||||
if (isset($pconfig['step10']['interclient']))
|
||||
$server['client2client'] = $pconfig['step10']['interclient'];
|
||||
if (isset($pconfig['step10']['dynip']))
|
||||
$server['dynamic_ip'] = $pconfig['step10']['dynip'];
|
||||
if (isset($pconfig['step10']['addrpool']))
|
||||
$server['pool_enable'] = $pconfig['step10']['addrpool'];
|
||||
if (isset($pconfig['step10']['defaultdomain']))
|
||||
|
||||
@ -756,6 +756,14 @@
|
||||
<type>listtopic</type>
|
||||
<name>Client Settings</name>
|
||||
</field>
|
||||
<field>
|
||||
<displayname>Dynamic IP</displayname>
|
||||
<name>dynip</name>
|
||||
<type>checkbox</type>
|
||||
<value>on</value>
|
||||
<description>Allow connected clients to retain their connections if their IP address changes.</description>
|
||||
<bindstofield>ovpnserver->step10->dynip</bindstofield>
|
||||
</field>
|
||||
<field>
|
||||
<displayname>Address Pool</displayname>
|
||||
<name>addrpool</name>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user