summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-01-24 17:18:46 +0000
committerErmal <eri@pfsense.org>2011-01-24 17:18:46 +0000
commitef8fca71ea298db49c5f15307bfcd84e37479911 (patch)
tree1ef09b225725126ba833b75ebe14a8d56ce08e7d
parent00ca3fb14f00e7ddae90d3424641d4d1d7a9104a (diff)
downloadpfsense-ef8fca71ea298db49c5f15307bfcd84e37479911.zip
pfsense-ef8fca71ea298db49c5f15307bfcd84e37479911.tar.gz
Do not put the queue config on the rules if there is no default queue, just log it. This prevents errors in rules loading which is worse than having no shaper.
-rw-r--r--etc/inc/shaper.inc24
1 files changed, 17 insertions, 7 deletions
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index 11aac9b..3dac2ce 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -515,8 +515,9 @@ class altq_root_queue {
* foreach ($queues as $qkey => $queue)
* this->queues[$qkey]->build_rule();
*/
- function build_rules() {
+ function build_rules($default = false) {
if (count($this->queues) > 0 && $this->GetEnabled() == "on") {
+ $default = false;
$rules = " altq on " . get_real_interface($this->GetInterface());
if ($this->GetScheduler())
$rules .= " ".strtolower($this->GetScheduler());
@@ -539,9 +540,14 @@ class altq_root_queue {
}
$rules .= " } \n";
foreach ($this->queues as $q) {
- $rules .= $q->build_rules();
+ $rules .= $q->build_rules(&$default);
}
}
+ if ($default == false) {
+ log_error("SHAPER: no default queue specified for interface ". $this->GetInterface() . ". The interface queue will be enforced as default.");
+ return "\n";
+ }
+ $frule .= $rules;
}
$rules .= " \n";
return $rules;
@@ -1025,7 +1031,7 @@ class priq_queue {
/* Should return something like:
* queue $qname on $qinterface bandwidth ....
*/
- function build_rules() {
+ function build_rules($default = false) {
$pfq_rule = " queue ". $this->qname;
if ($this->GetInterface())
$pfq_rule .= " on ".get_real_interface($this->GetInterface());
@@ -1061,6 +1067,7 @@ class priq_queue {
if ($comma)
$pfq_rule .= " ,";
$pfq_rule .= " default ";
+ $default = true;
}
$pfq_rule .= " ) ";
}
@@ -1674,7 +1681,7 @@ class hfsc_queue extends priq_queue {
}
/* Even this should take children into consideration */
- function build_rules() {
+ function build_rules($default = false) {
$pfq_rule = " queue ". $this->qname;
if ($this->GetInterface())
@@ -1713,6 +1720,7 @@ class hfsc_queue extends priq_queue {
$pfq_rule .= " ,";
$comma = 1;
$pfq_rule .= " default ";
+ $default = true;
}
if ($this->GetRealtime() <> "") {
@@ -2215,7 +2223,7 @@ class cbq_queue extends priq_queue {
}
/* Even this should take children into consideration */
- function build_rules() {
+ function build_rules($default = false) {
$pfq_rule = "queue ". $this->qname;
if ($this->GetInterface())
$pfq_rule .= " on ".get_real_interface($this->GetInterface());
@@ -2254,6 +2262,7 @@ class cbq_queue extends priq_queue {
$pfq_rule .= " ,";
$comma = 1;
$pfq_rule .= " default ";
+ $default = true;
}
$tmpvalue = trim($this->GetBorrow());
if (!empty($tmpvalue)) {
@@ -2275,7 +2284,7 @@ class cbq_queue extends priq_queue {
}
$pfq_rule .= " } \n";
foreach ($this->subqueues as $q)
- $pfq_rule .= $q->build_rules();
+ $pfq_rule .= $q->build_rules(&$default);
}
$pfq_rule .= " \n";
@@ -2489,7 +2498,7 @@ class fairq_queue extends priq_queue {
}
/* Even this should take children into consideration */
- function build_rules() {
+ function build_rules($default = false) {
$pfq_rule = "queue ". $this->qname;
if ($this->GetInterface())
$pfq_rule .= " on ".get_real_interface($this->GetInterface());
@@ -2529,6 +2538,7 @@ class fairq_queue extends priq_queue {
$pfq_rule .= " ,";
$comma = 1;
$pfq_rule .= " default ";
+ $default = true;
}
$tmpvalue = trim($this->GetBuckets());
if (!empty($tmpvalue)) {
OpenPOWER on IntegriCloud