diff --git a/usr/local/www/firewall_rules_edit.php b/usr/local/www/firewall_rules_edit.php index beec337331..70d973fc35 100755 --- a/usr/local/www/firewall_rules_edit.php +++ b/usr/local/www/firewall_rules_edit.php @@ -140,6 +140,8 @@ if (isset($id) && $a_filter[$id]) { /* Shaper support */ $pconfig['defaultqueue'] = $a_filter[$id]['defaultqueue']; $pconfig['ackqueue'] = $a_filter[$id]['ackqueue']; + $pconfig['dnpipe'] = $a_filter[$id]['dnpipe']; + $pconfig['pdnpipe'] = $a_filter[$id]['pdnpipe']; //schedule support $pconfig['sched'] = $a_filter[$id]['sched']; @@ -324,6 +326,16 @@ if ($_POST) { else if ($_POST['ackqueue'] == $_POST['defaultqueue']) $input_errors[] = "Acknokledge queue and Queue cannot be the same."; } + if ($_POST['pdnpipe'] && $_POST['pdnpipe'] != "none") { + if ($_POST['dnpipe'] == "none" ) + $input_errors[] = "You must select a queue for the In direction before selecting one for Out too."; + else if ($_POST['pdnpipe'] == $_POST['dnpipe']) + $input_errors[] = "In and Out Queue cannot be the same."; + else if ($pdnpipe[0] == "?" && $dnpipe[0] <> "?") + $input_errors[] = "You cannot select one queue and one virtual interface for IN and Out. both must be from the same type."; + else if ($dnpipe[0] == "?" && $pdnpipe[0] <> "?") + $input_errors[] = "You cannot select one queue and one virtual interface for IN and Out. both must be from the same type."; + } if (!$input_errors) { $filterent = array(); @@ -409,6 +421,12 @@ if ($_POST) { $filterent['ackqueue'] = $_POST['ackqueue']; } + if (isset($_POST['dnpipe']) && $_POST['dnpipe'] != "none") { + $filterent['dnpipe'] = $_POST['dnpipe']; + if (isset($_POST['pdnpipe']) && $_POST['pdnpipe'] != "none") + $filterent['pdnpipe'] = $_POST['pdnpipe']; + } + if ($_POST['sched'] != "") { $filterent['sched'] = $_POST['sched']; } @@ -1009,6 +1027,53 @@ on another rule.")?>
Leave as 'default' to use the system routing table. Or choose a gateway to utilize policy based routing.
+