Revision 1be1b87b
Added by Jim Pingle almost 9 years ago
src/usr/local/www/system_gateways.php | ||
---|---|---|
119 | 119 |
return; |
120 | 120 |
} |
121 | 121 |
|
122 |
/* If the removed gateway was the default route, remove the default route */ |
|
123 |
if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) && |
|
124 |
!isset($a_gateways[$id]['disabled']) && |
|
125 |
isset($a_gateways[$id]['defaultgw'])) { |
|
126 |
$inet = (!is_ipaddrv4($a_gateways[$id]['gateway']) ? '-inet6' : '-inet'); |
|
127 |
mwexec("/sbin/route delete {$inet} default"); |
|
128 |
} |
|
129 |
|
|
122 | 130 |
/* NOTE: Cleanup static routes for the interface route if any */ |
123 | 131 |
if (!empty($a_gateways[$id]) && is_ipaddr($a_gateways[$id]['gateway']) && |
124 | 132 |
$gateway['gateway'] != $a_gateways[$id]['gateway'] && |
... | ... | |
195 | 203 |
if ($ok_to_toggle) { |
196 | 204 |
if ($disable_gw) { |
197 | 205 |
$a_gateway_item[$realid]['disabled'] = true; |
206 |
/* If the disabled gateway was the default route, remove the default route */ |
|
207 |
if (!empty($a_gateway_item[$realid]) && is_ipaddr($a_gateway_item[$realid]['gateway']) && |
|
208 |
isset($a_gateway_item[$realid]['defaultgw'])) { |
|
209 |
$inet = (!is_ipaddrv4($a_gateway_item[$realid]['gateway']) ? '-inet6' : '-inet'); |
|
210 |
mwexec("/sbin/route delete {$inet} default"); |
|
211 |
} |
|
198 | 212 |
} else { |
199 | 213 |
unset($a_gateway_item[$realid]['disabled']); |
200 | 214 |
} |
src/usr/local/www/system_gateways_edit.php | ||
---|---|---|
494 | 494 |
|
495 | 495 |
if (isset($_POST['disabled'])) { |
496 | 496 |
$gateway['disabled'] = true; |
497 |
/* Check if the gateway was enabled but changed to disabled. */ |
|
498 |
if ((isset($realid) && $a_gateway_item[$realid]) && ($pconfig['disabled'] == false)) { |
|
499 |
/* If the disabled gateway was the default route, remove the default route */ |
|
500 |
if (is_ipaddr($gateway['gateway']) && |
|
501 |
isset($gateway['defaultgw'])) { |
|
502 |
$inet = (!is_ipaddrv4($gateway['gateway']) ? '-inet6' : '-inet'); |
|
503 |
mwexec("/sbin/route delete {$inet} default"); |
|
504 |
} |
|
505 |
} |
|
497 | 506 |
} else { |
498 | 507 |
unset($gateway['disabled']); |
499 | 508 |
} |
Also available in: Unified diff
When deleting or disabling a non-dynamic gateway, if that gateway was set as default then remove the corresponding default route to respect the user's decision. Fixes #6659