diff options
Diffstat (limited to 'src/usr/local/www/firewall_shaper_queues.php')
-rw-r--r-- | src/usr/local/www/firewall_shaper_queues.php | 203 |
1 files changed, 115 insertions, 88 deletions
diff --git a/src/usr/local/www/firewall_shaper_queues.php b/src/usr/local/www/firewall_shaper_queues.php index 6aa062b..190ca28 100644 --- a/src/usr/local/www/firewall_shaper_queues.php +++ b/src/usr/local/www/firewall_shaper_queues.php @@ -1,36 +1,63 @@ <?php /* $Id$ */ -/* +/* NEW firewall_shaper_queues.php - Copyright (C) 2004, 2005 Scott Ullrich - Copyright (C) 2008 Ermal Luçi - Copyright (C) 2013-2015 Electric Sheep Fencing, LP - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. */ +/* ==================================================================== + * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved. + * Copyright (c) 2004, 2005 Scott Ullrich + * Copyright (c) 2008 Ermal Luçi + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgment: + * "This product includes software developed by the pfSense Project + * for use in the pfSense software distribution. (http://www.pfsense.org/). + * + * 4. The names "pfSense" and "pfSense Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * coreteam@pfsense.org. + * + * 5. Products derived from this software may not be called "pfSense" + * nor may "pfSense" appear in their names without prior written + * permission of the Electric Sheep Fencing, LLC. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * + * "This product includes software developed by the pfSense Project + * for use in the pfSense software distribution (http://www.pfsense.org/). + * + * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ==================================================================== + * + */ /* pfSense_BUILDER_BINARIES: /usr/bin/killall - pfSense_MODULE: shaper + pfSense_MODULE: shaper */ ##|+PRIV @@ -46,11 +73,13 @@ require_once("filter.inc"); require_once("shaper.inc"); require_once("rrd.inc"); -if ($_GET['reset'] <> "") { +if ($_GET['reset'] != "") { mwexec("killall -9 pfctl"); exit; } +$qname = gettext("No queue configured/selected"); + $shaperIFlist = get_configured_interface_with_descr(); read_altq_config(); $qlist =& get_unique_queue_list(); @@ -74,9 +103,11 @@ if ($_GET) { if ($_GET['queue']) { $qname = htmlspecialchars(trim($_GET['queue'])); } + if ($_GET['interface']) { $interface = htmlspecialchars(trim($_GET['interface'])); } + if ($_GET['action']) { $action = htmlspecialchars($_GET['action']); } @@ -101,10 +132,12 @@ if ($_GET) { */ foreach ($altq_list_queues as $altq) { $qtmp =& $altq->find_queue("", $qname); + if ($qtmp) { $copycfg = array(); $qtmp->copy_queue($interface, $copycfg); $aq =& $altq_list_queues[$interface]; + if ($qname == $qtmp->GetInterface()) { $config['shaper']['queue'][] = $copycfg; } else if ($aq) { @@ -118,6 +151,7 @@ if ($_GET) { } else { $link =& get_reference_to_me_in_config($aq->GetLink()); } + $link['queue'][] = $copycfg; } else { $newroot = array(); @@ -128,37 +162,40 @@ if ($_GET) { $newroot['queue'][] = $copycfg; $config['shaper']['queue'][] = $newroot; } - if (write_config()) { + + if (write_config()) mark_subsystem_dirty('shaper'); - } + break; + } } - } header("Location: firewall_shaper_queues.php?queue=".$qname."&action=show"); exit; - break; + break; case "show": foreach ($config['interfaces'] as $if => $ifdesc) { $altq = $altq_list_queues[$if]; + if ($altq) { $qtmp =& $altq->find_queue("", $qname); - if ($qtmp) { + + if ($qtmp) $output .= $qtmp->build_shortform(); - } else { + else $output .= build_iface_without_this_queue($if, $qname); - } + } else { - if (!is_altq_capable($ifdesc['if'])) { + if (!is_altq_capable($ifdesc['if'])) continue; - } - if (!isset($ifdesc['enable']) && $if != "lan" && $if != "wan") { + + if (!isset($ifdesc['enable']) && $if != "lan" && $if != "wan") continue; - } + $output .= build_iface_without_this_queue($if, $qname); } } - break; + break; } } @@ -186,59 +223,49 @@ if ($_POST['apply']) { $pgtitle = gettext("Firewall: Shaper: By Queues View"); $shortcut_section = "trafficshaper"; $closehead = false; + include("head.inc"); ?> + <link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" /> <script type="text/javascript" src="./tree/tree.js"></script> -</head> -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<div id="inputerrors"></div> -<?php if ($input_errors) print_input_errors($input_errors); ?> -<form action="firewall_shaper_queues.php" method="post" name="iform" id="iform"> -<?php if ($savemsg) print_info_box($savemsg); ?> -<?php if (is_subsystem_dirty('shaper')): ?><p> -<?php print_info_box_np(gettext("The traffic shaper configuration has been changed") . ".<br />" . gettext("You must apply the changes in order for them to take effect."));?><br /></p> -<?php endif; ?> -<table width="100%" border="0" cellpadding="0" cellspacing="0" summary="traffic shaper queues"> - <tr><td> <?php - $tab_array = array(); - $tab_array[0] = array(gettext("By Interface"), false, "firewall_shaper.php"); - $tab_array[1] = array(gettext("By Queue"), true, "firewall_shaper_queues.php"); - $tab_array[2] = array(gettext("Limiter"), false, "firewall_shaper_vinterface.php"); - $tab_array[3] = array(gettext("Layer7"), false, "firewall_shaper_layer7.php"); - $tab_array[4] = array(gettext("Wizards"), false, "firewall_shaper_wizards.php"); - display_top_tabs($tab_array); +if ($input_errors) + print_input_errors($input_errors); + +if ($savemsg) + print_info_box($savemsg); + +if (is_subsystem_dirty('shaper')) + print_info_box_np(gettext("The traffic shaper configuration has been changed. You must apply the changes in order for them to take effect.")); + +$tab_array = array(); +$tab_array[] = array(gettext("By Interface"), false, "firewall_shaper.php"); +$tab_array[] = array(gettext("By Queue"), true, "firewall_shaper_queues.php"); +$tab_array[] = array(gettext("Limiter"), false, "firewall_shaper_vinterface.php"); +$tab_array[] = array(gettext("Layer7"), false, "firewall_shaper_layer7.php"); +$tab_array[] = array(gettext("Wizards"), false, "firewall_shaper_wizards.php"); +display_top_tabs($tab_array); + ?> - </td></tr> - <tr> - <td valign="top"> - <div id="mainarea"> - <table class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0" summary="main area"> - <tr> - <td width="30%" valign="top" align="left"> - <?php echo $tree; ?> - </td> - <td width="70%" valign="top" align="center"> - <?php - if ($qname) { - echo "<p class=\"pgtitle\">" . $qname . "</p><br />"; - } - echo "<table align=\"center\" class=\"tabcont\" width=\"80%\" border=\"0\" cellpadding=\"4\" cellspacing=\"0\" summary=\"output form\">"; - echo $output; - echo "<tr><td> </td></tr>"; - echo "</table>"; - ?> - </td> - </tr> - </table><!-- table:main area --> - </div><!-- div:main area --> - </td> - </tr> -</table> + +<form action="firewall_shaper_queues.php" method="post" name="iform" id="iform"> + <div class="panel panel-default"> + <div class="panel-heading" align="center"><h2 class="panel-title"><?=$qname?></h2></div> + <div class="panel-body"> + <div class="form-group"> + <div class="col-sm-2 "> + <?=$tree?> + </div> + <div class="col-sm-10"> + <?=$output?> + </div> + </div> + </div> + </div> </form> -<?php include("fend.inc"); ?> -</body> -</html> + +<?php + +include("foot.inc"); |