summaryrefslogtreecommitdiffstats
path: root/usr/local/www/system_routes_edit.php
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@dds.nl>2011-10-11 21:55:09 +0200
committerSeth Mos <seth.mos@dds.nl>2011-10-11 21:56:43 +0200
commitad700f39a25ed94e03e0d1509a19b011db9f71ea (patch)
treee1a8818b6b88777de2d8dc0d798d13e4096702ad /usr/local/www/system_routes_edit.php
parentdf39dd8ab4e41c3b668ce8dd9c8b86d7dcceb743 (diff)
downloadpfsense-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-xusr/local/www/system_routes_edit.php11
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();
OpenPOWER on IntegriCloud