diff --git a/Shorewall/Perl/Shorewall/Rules.pm b/Shorewall/Perl/Shorewall/Rules.pm index 05071a7da..735717607 100644 --- a/Shorewall/Perl/Shorewall/Rules.pm +++ b/Shorewall/Perl/Shorewall/Rules.pm @@ -1169,16 +1169,14 @@ sub finish_section ( $ ) { # # Create a normalized action name from the passed pieces. # -# Internally, action invocations are uniquely identified by a 5-tuple that -# includes the action name, log level, log tag, dynamic invocation number -# (which is zero except for dynamic actions) and params. The pieces of the -# tuple are separated by ":". +# Internally, action invocations are uniquely identified by a 4-tuple that +# includes the action name, log level, log tag and params. The pieces of the tuple +# are separated by ":". # sub normalize_action( $$$ ) { - my $action = shift; - my $level = shift; - my $param = shift; - my $dynamic = $actions{$action}->{dynamic}; + my $action = shift; + my $level = shift; + my $param = shift; ( $level, my $tag ) = split ':', $level; @@ -1187,9 +1185,7 @@ sub normalize_action( $$$ ) { $param = '' unless defined $param; $param = '' if $param eq '-'; - $actions{$action}->{dynamic}++ if $dynamic; - - join( ':', $action, $level, $tag, $dynamic, $param ); + join( ':', $action, $level, $tag, $param ); } # @@ -1207,9 +1203,9 @@ sub normalize_action_name( $ ) { # Produce a recognizable target from a normalized action # sub external_name( $ ) { - my ( $target, $level, $tag, $dynamic, $params ) = split /:/, shift, 5; + my ( $target, $level, $tag, $params ) = split /:/, shift, 4; - $target = join( '', $target, '(', $params , ')' ) if supplied $params; + $target = join( '', $target, '(', $params , ')' ) if $params; $target .= ":$level" if $level && $level ne 'none'; $target .= ":$tag" if $tag; $target; @@ -1218,13 +1214,13 @@ sub external_name( $ ) { # # Define an Action # -sub new_action( $$$$$ ) { +sub new_action( $$$$ ) { - my ( $action , $type, $noinline, $nolog, $dynamic ) = @_; + my ( $action , $type, $noinline, $nolog ) = @_; fatal_error "Invalid action name($action)" if reserved_name( $action ); - $actions{$action} = { actchain => '' , noinline => $noinline, nolog => $nolog , dynamic => $dynamic } if $type & ACTION; + $actions{$action} = { actchain => '' , noinline => $noinline, nolog => $nolog } if $type & ACTION; $targets{$action} = $type; } @@ -1697,7 +1693,7 @@ sub process_rule ( $$$$$$$$$$$$$$$$$$$$ ); sub process_action($$) { my ( $chainref, $caller ) = @_; my $wholeaction = $chainref->{action}; - my ( $action, $level, $tag, $dynamic, $param ) = split /:/, $wholeaction, 5; + my ( $action, $level, $tag, $param ) = split /:/, $wholeaction, 4; if ( $targets{$action} & BUILTIN ) { $level = '' if $level =~ /none!?/; @@ -1796,7 +1792,7 @@ sub process_actions() { # # Add built-in actions to the target table and create those actions # - $targets{$_} = new_action( $_ , ACTION + BUILTIN, 1, 0 , 0 ) for @builtins; + $targets{$_} = new_action( $_ , ACTION + BUILTIN, 1, 0 ) for @builtins; for my $file ( qw/actions.std actions/ ) { open_file( $file, 2 ); @@ -1819,7 +1815,6 @@ sub process_actions() { FILTER_OPT => 64 , NAT_OPT => 128 , TERMINATING_OPT => 256 , - DYNAMIC_OPT => 512 , }; my %options = ( inline => INLINE_OPT , @@ -1831,7 +1826,6 @@ sub process_actions() { filter => FILTER_OPT , nat => NAT_OPT , terminating => TERMINATING_OPT , - dynamic => DYNAMIC_OPT , ); my $opts = $type == INLINE ? NOLOG_OPT : 0; @@ -1887,25 +1881,17 @@ sub process_actions() { $targets{$action} = $actiontype; - make_terminating( $action ) if $opts & TERMINATING_OPT; - warning_message "The 'dynamic' option is ignored on built-in actions" if $opts & DYNAMIC_OPT; + make_terminating( $action ) if $opts & TERMINATING_OPT } else { fatal_error "Table names are only allowed for builtin actions" if $opts & ( MANGLE_OPT | RAW_OPT | NAT_OPT | FILTER_OPT ); - new_action( $action, - $type, - ( $opts & NOINLINE_OPT ) != 0, - ( $opts & NOLOG_OPT ) != 0, - ( $opts & DYNAMIC_OPT ) != 0 ); + new_action $action, $type, ( $opts & NOINLINE_OPT ) != 0 , ( $opts & NOLOG_OPT ) != 0; my $actionfile = find_file( "action.$action" ); fatal_error "Missing Action File ($actionfile)" unless -f $actionfile; - if ( $type == INLINE ) { - warning_message "The 'dynamic' option is ignored on 'inline' actions" if $opts & DYNAMIC_OPT; - $inlines{$action} = { file => $actionfile, nolog => $opts & NOLOG_OPT }; - } + $inlines{$action} = { file => $actionfile, nolog => $opts & NOLOG_OPT } if $type == INLINE; } } } diff --git a/Shorewall/manpages/shorewall-actions.xml b/Shorewall/manpages/shorewall-actions.xml index cc30cec77..fe067d7c2 100644 --- a/Shorewall/manpages/shorewall-actions.xml +++ b/Shorewall/manpages/shorewall-actions.xml @@ -85,17 +85,6 @@ - - dynamic - - - Added in Shorewall 5.0.4. When specified, this option - causes each invocation of the action to create a separate - iptables chain to hold the action rules. This is useful when - @caller is used within the action body. - - - inline diff --git a/Shorewall6/manpages/shorewall6-actions.xml b/Shorewall6/manpages/shorewall6-actions.xml index 2e3a0ed03..7c9274a90 100644 --- a/Shorewall6/manpages/shorewall6-actions.xml +++ b/Shorewall6/manpages/shorewall6-actions.xml @@ -86,17 +86,6 @@ - - dynamic - - - Added in Shorewall 5.0.4. When specified, this option - causes each invocation of the action to create a separate - ip6tables chain to hold the action rules. This is useful when - @caller is used within the action body. - - - inline