mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Another sweep at keeping the default route always present when the default setup route is marked as down. This now adds checks for configuration where a defaultgw is not specified by the user but deduced automatically.
This commit is contained in:
parent
d10da0f995
commit
19d9146637
@ -373,23 +373,33 @@ function return_gateway_groups_array() {
|
||||
*/
|
||||
$upgw = "";
|
||||
$dfltgwdown = false;
|
||||
$dfltgwfound = false;
|
||||
foreach ($gateways_arr as $gwname => $gwsttng) {
|
||||
if ($gwsttng['defaultgw'] == true && stristr($gateways_status[$gwname]['status'], "down"))
|
||||
$dfltgwdown = true;
|
||||
if (isset($gwsttng['defaultgw'])) {
|
||||
$dfltgwfound = true;
|
||||
if (stristr($gateways_status[$gwname]['status'], "down"))
|
||||
$dfltgwdown = true;
|
||||
}
|
||||
/* Keep a record of the last up gateway */
|
||||
if (empty($upgw) && !stristr($gateways_status[$gwname]['status'], "down"))
|
||||
$upgw = $gwname;
|
||||
if ($dfltgwdown == true && !empty($upgw)) {
|
||||
if ($gateways_arr[$upgw]['gateway'] == "dynamic")
|
||||
$gateways_arr[$upgw]['gateway'] = get_interface_gateway($gateways_arr[$upgw]['friendlyiface']);
|
||||
if (is_ipaddr($gateways_arr[$upgw]['gateway'])) {
|
||||
log_error("Default gateway down setting {$upgw} as default!");
|
||||
mwexec("/sbin/route delete -inet default; /sbin/route add -inet default {$gateways_arr[$upgw]['gateway']}");
|
||||
}
|
||||
if ($dfltgwdown == true && !empty($upgw))
|
||||
break;
|
||||
}
|
||||
if ($dfltgwfound == false) {
|
||||
$gwname = convert_friendly_interface_to_friendly_descr("wan");
|
||||
if (stristr($gateways_status[$gwname]['status'], "down"))
|
||||
$dfltgwdown = true;
|
||||
}
|
||||
if ($dfltgwdown == true && !empty($upgw)) {
|
||||
if ($gateways_arr[$upgw]['gateway'] == "dynamic")
|
||||
$gateways_arr[$upgw]['gateway'] = get_interface_gateway($gateways_arr[$upgw]['friendlyiface']);
|
||||
if (is_ipaddr($gateways_arr[$upgw]['gateway'])) {
|
||||
log_error("Default gateway down setting {$upgw} as default!");
|
||||
mwexec("/sbin/route delete -inet default; /sbin/route add -inet default {$gateways_arr[$upgw]['gateway']}");
|
||||
}
|
||||
}
|
||||
unset($upgw, $dfltgwdown, $gwname, $gwsttng);
|
||||
unset($upgw, $dfltgwfound, $dfltgwdown, $gwname, $gwsttng);
|
||||
|
||||
if (is_array($config['gateways']['gateway_group'])) {
|
||||
foreach($config['gateways']['gateway_group'] as $group) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user