diff options
author | Bill Marquette <billm@pfsense.org> | 2005-06-06 04:45:56 +0000 |
---|---|---|
committer | Bill Marquette <billm@pfsense.org> | 2005-06-06 04:45:56 +0000 |
commit | e4ec999c4c5db59603387a69829e234192aa416f (patch) | |
tree | c229772b69c4907239d056fe4d7c746ea23ae1ff /etc | |
parent | ff0e0e1a3d5d70bdbb1dc16cd1f3e335dbdffef7 (diff) | |
download | pfsense-e4ec999c4c5db59603387a69829e234192aa416f.zip pfsense-e4ec999c4c5db59603387a69829e234192aa416f.tar.gz |
Outbound shaper tags for ticket #125
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/filter.inc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 72a48e8..a906dac 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -574,8 +574,9 @@ function filter_generate_pf_altq_rules() { } for ($iif = 0; $iif < $nif; $iif++) { + foreach ( array('in', 'out') as $direction) { - $line = "pass in on "; + $line = "pass {$direction} on "; if ($ispptp) { $line .= " ng" . ($iif+1); @@ -583,9 +584,15 @@ function filter_generate_pf_altq_rules() { $if = $config['interfaces'][$rule['interface']]['if']; if ($rule['interface'] == "wan") - $if = $wanif; + if($direction=="in") + $if = $wanif; + else + $if = $lanif; else if($rule['interface'] == "lan") - $if = $lanif; + if($direction=="in") + $if = $lanif; + else + $if = $wanif; $line .= " {$if} "; } @@ -595,7 +602,7 @@ function filter_generate_pf_altq_rules() { } /* source address */ - if (isset($rule['source']['any'])) { + if (isset($rule['source']['any']) || $direction == "out") { $src = "any"; } else if ($rule['source']['network']) { if (strstr($rule['source']['network'], "opt")) { @@ -721,10 +728,12 @@ function filter_generate_pf_altq_rules() { $line .= "out xmit "; */ - $line .= " keep state tag {$rule['inqueue']} "; + $qtag = "{$direction}queue"; + $line .= " keep state tag {$rule[$qtag]} "; $line .= "\n"; $shaperrules .= $line; + } } $i++; |