diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2006-04-19 03:59:35 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2006-04-19 03:59:35 +0000 |
commit | 191ed731c7eb89463d5fa200bc23bf8f4dee0680 (patch) | |
tree | 3b4f5dbfe1a125d993b8fd2625c4d7c3c52c7e90 /etc | |
parent | 58c32a28e64077c78537a1a3ee952cfa9ca366fe (diff) | |
download | pfsense-191ed731c7eb89463d5fa200bc23bf8f4dee0680.zip pfsense-191ed731c7eb89463d5fa200bc23bf8f4dee0680.tar.gz |
MFC 11604
Don't create a pass out rule for a queue if it is not on an interface or not used in a rule. This will cut queue pass out rules by the number of interfaces enabled.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/filter.inc | 2 | ||||
-rw-r--r-- | etc/inc/shaper.inc | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index dfc1e59..6c9e74d 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -2159,6 +2159,8 @@ function create_firewall_outgoing_rules_to_itself() { $defq = find_default_queue($ifname); /* Handle all tagged packets */ foreach ($config['shaper']['queue'] as $queue) { + if(!filter_is_queue_being_used_on_interface($queue['name'], $ifname, 'out')) + continue; if ($ackq == "" || $defq == "") { /* Shaper must not be enabled on this interface */ $q = ""; diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc index 54f9599..37e85dd 100644 --- a/etc/inc/shaper.inc +++ b/etc/inc/shaper.inc @@ -180,13 +180,15 @@ function is_subqueue_used_on_interface($queuename, $interface) { return 0; } -function filter_is_queue_being_used_on_interface($queuename, $interface) { +function filter_is_queue_being_used_on_interface($queuename, $interface, $direction = 'in') { global $config; $lconfig = $config; if(!is_array($lconfig['shaper']['rule'])) return null; foreach($lconfig['shaper']['rule'] as $rule) { - if(($rule['inqueue'] == $queuename && $rule['in-interface'] == $interface)) + $q = $direction . 'queue'; + $if = $direction . '-interface'; + if(($rule[$q] == $queuename && $rule[$if] == $interface)) return $interface; } return null; @@ -660,4 +662,4 @@ function filter_generate_pf_altq_rules() { return $shaperrules; } -?>
\ No newline at end of file +?> |