Fix for macro handling of rate and user

git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@6178 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
teastep 2007-05-01 17:50:50 +00:00
parent 37d7ef0ba6
commit 15c8f371b1
3 changed files with 12 additions and 8 deletions

View File

@ -42,8 +42,8 @@ our @VERSION = 1.00;
# #
my $jumpchainref; my $jumpchainref;
sub process_accounting_rule( $$$$$$$$ ) { sub process_accounting_rule( $$$$$$$$$ ) {
my ($action, $chain, $source, $dest, $proto, $ports, $sports, $user ) = @_; my ($action, $chain, $source, $dest, $proto, $ports, $sports, $user, $mark ) = @_;
sub accounting_error() { sub accounting_error() {
warning_message "Invalid Accounting rule"; warning_message "Invalid Accounting rule";
@ -61,7 +61,7 @@ sub process_accounting_rule( $$$$$$$$ ) {
my $target = ''; my $target = '';
my $rule = do_proto( $proto, $ports, $sports ) . do_user ( $user ); my $rule = do_proto( $proto, $ports, $sports ) . do_user ( $user ) . do_test ( $mark );
my $rule2 = 0; my $rule2 = 0;
unless ( $action eq 'COUNT' ) { unless ( $action eq 'COUNT' ) {

View File

@ -95,9 +95,9 @@ sub do_ipsec_options($)
# #
# Process a single rule from the the masq file # Process a single rule from the the masq file
# #
sub setup_one_masq($$$$$$) sub setup_one_masq($$$$$$$)
{ {
my ($fullinterface, $networks, $addresses, $proto, $ports, $ipsec) = @_; my ($fullinterface, $networks, $addresses, $proto, $ports, $ipsec, $mark) = @_;
my $rule = ''; my $rule = '';
my $pre_nat; my $pre_nat;
@ -166,6 +166,10 @@ sub setup_one_masq($$$$$$)
# Handle Protocol and Ports # Handle Protocol and Ports
# #
$rule .= do_proto $proto, $ports, ''; $rule .= do_proto $proto, $ports, '';
#
# Handle Mark
#
rule .= do_test $mark if $mark ne '-';
my $detectaddress = 0; my $detectaddress = 0;
# #
@ -258,7 +262,7 @@ sub setup_masq()
while ( read_a_line ) { while ( read_a_line ) {
my ($fullinterface, $networks, $addresses, $proto, $ports, $ipsec) = split_line 2, 6, 'masq file'; my ($fullinterface, $networks, $addresses, $proto, $ports, $ipsec, $mark ) = split_line 2, 7, 'masq file';
if ( $first_entry ) { if ( $first_entry ) {
progress_message2 "$doing $fn..."; progress_message2 "$doing $fn...";
@ -274,7 +278,7 @@ sub setup_masq()
warning_message "COMMENT ignored -- requires comment support in iptables/Netfilter"; warning_message "COMMENT ignored -- requires comment support in iptables/Netfilter";
} }
} else { } else {
setup_one_masq $fullinterface, $networks, $addresses, $proto, $ports, $ipsec; setup_one_masq $fullinterface, $networks, $addresses, $proto, $ports, $ipsec, $mark;
} }
} }

View File

@ -841,7 +841,7 @@ sub process_macro ( $$$$$$$$$$$ ) {
$mrate = merge_macro_column $mrate, $rate; $mrate = merge_macro_column $mrate, $rate;
$muser = merge_macro_column $muser, $user; $muser = merge_macro_column $muser, $user;
process_rule1 $mtarget, $msource, $mdest, $mproto, $mports, $msports, $origdest, $rate, $user; process_rule1 $mtarget, $msource, $mdest, $mproto, $mports, $msports, $origdest, $mrate, $muser;
progress_message " Rule \"$line\" $done"; progress_message " Rule \"$line\" $done";
} }