diff options
-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 +?> |