diff options
author | Seth Mos <seth.mos@dds.nl> | 2011-10-11 21:55:09 +0200 |
---|---|---|
committer | Seth Mos <seth.mos@dds.nl> | 2011-10-11 21:56:43 +0200 |
commit | ad700f39a25ed94e03e0d1509a19b011db9f71ea (patch) | |
tree | e1a8818b6b88777de2d8dc0d798d13e4096702ad /usr/local/www/system_routes_edit.php | |
parent | df39dd8ab4e41c3b668ce8dd9c8b86d7dcceb743 (diff) | |
download | pfsense-ad700f39a25ed94e03e0d1509a19b011db9f71ea.zip pfsense-ad700f39a25ed94e03e0d1509a19b011db9f71ea.tar.gz |
Fix static routes editing and removal for both IPv4 and IPv6. Changing a route should clean up too.
Fix ticket #1892
Diffstat (limited to 'usr/local/www/system_routes_edit.php')
-rwxr-xr-x | usr/local/www/system_routes_edit.php | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/usr/local/www/system_routes_edit.php b/usr/local/www/system_routes_edit.php index 1e23707..cf38206 100755 --- a/usr/local/www/system_routes_edit.php +++ b/usr/local/www/system_routes_edit.php @@ -93,12 +93,12 @@ if ($_POST) { do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); if (($_POST['network'] && !is_ipaddr($_POST['network']))) { - $input_errors[] = gettext("A valid destination network must be specified."); + $input_errors[] = gettext("A valid IPv4 or IPv6 destination network must be specified."); } if (($_POST['network_subnet'] && !is_numeric($_POST['network_subnet']))) { $input_errors[] = gettext("A valid destination network bit count must be specified."); } - if ($_POST['gateway']) { + if (($_POST['gateway']) && is_ipaddr($_POST['network'])) { if (!isset($a_gateways[$_POST['gateway']])) $input_errors[] = gettext("A valid gateway must be specified."); if(!validate_address_family($_POST['network'], lookup_gateway_ip_by_name($_POST['gateway']))) @@ -144,8 +144,11 @@ if ($_POST) { if (!empty($oroute)) { $osn = explode('/', $oroute['network']); $sn = explode('/', $route['network']); - if ($oroute['network'] <> $route['network']) - $toapplylist[] = "/sbin/route delete {$oroute['network']}"; + if ($oroute['network'] <> $route['network']) { + if(is_ipaddrv6($oroute['network'])) + $family = "-inet6"; + $toapplylist[] = "/sbin/route delete {$family} {$oroute['network']}"; + } } file_put_contents("{$g['tmp_path']}/.system_routes.apply", serialize($toapplylist)); staticroutes_sort(); |