summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2005-02-08 16:59:34 +0000
committerScott Ullrich <sullrich@pfsense.org>2005-02-08 16:59:34 +0000
commita771093722fbcf5eabccca936629686fa37cc235 (patch)
treed590f648d49f88b952e7c0161606073cfca24827
parentac869cd99b47047df30c82cc0444e6bb8182b67f (diff)
downloadpfsense-a771093722fbcf5eabccca936629686fa37cc235.zip
pfsense-a771093722fbcf5eabccca936629686fa37cc235.tar.gz
Do not attempt to use a queue if its not associated with a rule.
Change the default queue for magic shaper to be the qHatedDownload on the catch all rule.
-rw-r--r--etc/inc/filter.inc84
1 files changed, 43 insertions, 41 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc
index e6c58c6..af7e4bf 100644
--- a/etc/inc/filter.inc
+++ b/etc/inc/filter.inc
@@ -76,7 +76,7 @@ function filter_configure() {
/* generate altq interface setup parms */
$altq_ints = filter_setup_altq_interfaces();
/* generate altq queues */
- $altq_queues = filter_generate_altq_queues();
+ $altq_queues = filter_generate_altq_queues($altq_ints);
/* generate altq rules */
$altq_rules = filter_generate_altq_rules();
@@ -179,51 +179,54 @@ function filter_get_rule_interface($associatedrulenumber) {
return $config['shaper']['rule'][$associatedrulenumber]['interface'];
}
-function filter_generate_altq_queues() {
+function filter_generate_altq_queues($altq_ints) {
global $config;
$altq_rules = "";
if (is_array($config['shaper']['queue'])) {
foreach ($config['shaper']['queue'] as $rule) {
$options = "";
- $altq_rules .= "queue " . $rule['name'] . " ";
- if (isset($rule['bandwidth']) and $rule['bandwidth'] <> "")
- $altq_rules .= "bandwidth " . $rule['bandwidth'] . $rule['bandwidthtype'] . " ";
- if (isset($rule['priority']) and $rule['priority'] <> "")
- $altq_rules .= "priority " . $rule['priority'] . " ";
- if(isset($rule['red']) and $rule['red'] <> "")
- $options .= " red";
- if(isset($rule['borrow']) and $rule['borrow'] <> "")
- $options .= " borrow";
- if(isset($rule['ecn']) and $rule['ecn'] <> "")
- $options .= " ecn";
- if(isset($rule['rio']) and $rule['rio'] <> "")
- $options .= " rio";
- if(isset($rule['defaultqueue']) and $rule['defaultqueue'] <> "")
- $options .= " default";
- if(isset($rule['upperlimit']) and $rule['upperlimit'] <> "") {
- $options .= " upperlimit(" . $rule['upperlimit1'] . " " . $rule['upperlimit2'] . " " . $rule['upperlimit3'] . ")";
- }
- if(isset($rule['linkshare']) and $rule['linkshare'] <> "") {
- $options .= " linkshare(" . $rule['linkshare1'] . " " . $rule['linkshare2'] . " " . $rule['linkshare3'] . ")";
- }
- if(isset($rule['realtime']) and $rule['realtime'] <> "") {
- $options .= " realtime(" . $rule['realtime1'] . " " . $rule['realtime2'] . " " . $rule['realtime3'] . ")";
- }
- $scheduler_type = $config['system']['schedulertype'];
- $altq_rules .= $scheduler_type . " ";
- if($options)
- $altq_rules .= "(". $options . " )";
- if (isset($rule['subqueue'])) {
- $altq_rules .= "{ ";
- $fsq = "";
- foreach ($rule['subqueue'] as $sq) {
- if($fsq) $altq_rules .= ",";
- $altq_rules .= $sq['name'];
- $fsq = "1";
+ // check to make sure we're actually using this queue.
+ if(stristr($altq_ints, $rule['name']) !== FALSE) {
+ $altq_rules .= "queue " . $rule['name'] . " ";
+ if (isset($rule['bandwidth']) and $rule['bandwidth'] <> "")
+ $altq_rules .= "bandwidth " . $rule['bandwidth'] . $rule['bandwidthtype'] . " ";
+ if (isset($rule['priority']) and $rule['priority'] <> "")
+ $altq_rules .= "priority " . $rule['priority'] . " ";
+ if(isset($rule['red']) and $rule['red'] <> "")
+ $options .= " red";
+ if(isset($rule['borrow']) and $rule['borrow'] <> "")
+ $options .= " borrow";
+ if(isset($rule['ecn']) and $rule['ecn'] <> "")
+ $options .= " ecn";
+ if(isset($rule['rio']) and $rule['rio'] <> "")
+ $options .= " rio";
+ if(isset($rule['defaultqueue']) and $rule['defaultqueue'] <> "")
+ $options .= " default";
+ if(isset($rule['upperlimit']) and $rule['upperlimit'] <> "") {
+ $options .= " upperlimit(" . $rule['upperlimit1'] . " " . $rule['upperlimit2'] . " " . $rule['upperlimit3'] . ")";
+ }
+ if(isset($rule['linkshare']) and $rule['linkshare'] <> "") {
+ $options .= " linkshare(" . $rule['linkshare1'] . " " . $rule['linkshare2'] . " " . $rule['linkshare3'] . ")";
+ }
+ if(isset($rule['realtime']) and $rule['realtime'] <> "") {
+ $options .= " realtime(" . $rule['realtime1'] . " " . $rule['realtime2'] . " " . $rule['realtime3'] . ")";
}
- $altq_rules .= " }";
+ $scheduler_type = $config['system']['schedulertype'];
+ $altq_rules .= $scheduler_type . " ";
+ if($options)
+ $altq_rules .= "(". $options . " )";
+ if (isset($rule['subqueue'])) {
+ $altq_rules .= "{ ";
+ $fsq = "";
+ foreach ($rule['subqueue'] as $sq) {
+ if($fsq) $altq_rules .= ",";
+ $altq_rules .= $sq['name'];
+ $fsq = "1";
+ }
+ $altq_rules .= " }";
+ }
+ $altq_rules .= "\n";
}
- $altq_rules .= "\n";
}
}
return $altq_rules;
@@ -281,8 +284,7 @@ function filter_setup_altq_interfaces() {
if($is_first) $queue_names .= ", ";
$queue_names .= $queue['name'];
$is_first = "1";
- } else {
- }
+ }
}
}
OpenPOWER on IntegriCloud