forked from extern/shorewall_code
Correct helper parsing in the Raw module.
- Require (...) around multiple ctevents - Detect invalid options Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
9a0d53194a
commit
b4c812b676
@ -87,24 +87,26 @@ sub process_notrack_rule( $$$$$$$ ) {
|
|||||||
$action = "CT --helper $args";
|
$action = "CT --helper $args";
|
||||||
$exception_rule = do_proto( $proto, '-', '-' );
|
$exception_rule = do_proto( $proto, '-', '-' );
|
||||||
|
|
||||||
for my $mod ( split ',', $modifiers ) {
|
for my $mod ( split_list1( $modifiers, 'ctevents' ) ) {
|
||||||
fatal_error "Invalid helper option ($mod)" unless $mod =~ /^(\w+)=(.+)$/;
|
fatal_error "Invalid helper option ($mod)" unless $mod =~ /^(\w+)=(.+)$/;
|
||||||
$mod = $1;
|
$mod = $1;
|
||||||
$args = $2;
|
my $val = $2;
|
||||||
|
|
||||||
if ( $mod eq 'ctevents' ) {
|
if ( $mod eq 'ctevents' ) {
|
||||||
for ( split ',', $args ) {
|
for ( split_list( $val, 'ctevents' ) ) {
|
||||||
fatal_error "Invalid 'ctevents' event ($_)" unless $valid_ctevent{$_};
|
fatal_error "Invalid 'ctevents' event ($_)" unless $valid_ctevent{$_};
|
||||||
}
|
}
|
||||||
|
|
||||||
$action .= " --ctevents $args";
|
$action .= " --ctevents $val";
|
||||||
} elsif ( $mod eq 'expevents' ) {
|
} elsif ( $mod eq 'expevents' ) {
|
||||||
fatal_error "Invalid expevent argument ($args)" unless $args eq 'new';
|
fatal_error "Invalid expevent argument ($val)" unless $val eq 'new';
|
||||||
$action .= ' --expevents new';
|
$action .= ' --expevents new';
|
||||||
} else {
|
} else {
|
||||||
fatal_error "Invalid helper option ($mod)";
|
fatal_error "Invalid helper option ($mod)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
fatal_error "Invalid CT option ($option)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,7 +199,10 @@
|
|||||||
role="bold">helper</emphasis>, <emphasis
|
role="bold">helper</emphasis>, <emphasis
|
||||||
role="bold">mark</emphasis> (this is connection mark, not
|
role="bold">mark</emphasis> (this is connection mark, not
|
||||||
packet mark), <emphasis role="bold">natseqinfo</emphasis>,
|
packet mark), <emphasis role="bold">natseqinfo</emphasis>,
|
||||||
and <emphasis role="bold">secmark</emphasis>.</para>
|
and <emphasis role="bold">secmark</emphasis>. If more than
|
||||||
|
one <emphasis>event</emphasis> is listed, the
|
||||||
|
<replaceable>event</replaceable> list must be enclosed in
|
||||||
|
parentheses (e.g., ctevents=(new,related)).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -102,7 +102,10 @@
|
|||||||
role="bold">helper</emphasis>, <emphasis
|
role="bold">helper</emphasis>, <emphasis
|
||||||
role="bold">mark</emphasis> (this is connection mark, not
|
role="bold">mark</emphasis> (this is connection mark, not
|
||||||
packet mark), <emphasis role="bold">natseqinfo</emphasis>,
|
packet mark), <emphasis role="bold">natseqinfo</emphasis>,
|
||||||
and <emphasis role="bold">secmark</emphasis>.</para>
|
and <emphasis role="bold">secmark</emphasis>. If more than
|
||||||
|
one <emphasis>event</emphasis> is listed, the
|
||||||
|
<replaceable>event</replaceable> list must be enclosed in
|
||||||
|
parentheses (e.g., ctevents=(new,related)).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
|
Loading…
Reference in New Issue
Block a user