> I would appreciate it if all who are testing nfacct would apply this patch.
>   
I have a question:

--- a/Shorewall/Perl/Shorewall/Accounting.pm
+++ b/Shorewall/Perl/Shorewall/Accounting.pm
@@ -235,15 +235,12 @@ sub process_accounting_rule1( $$$$$$$$$$$ ) {
         require_capability 'NFACCT_MATCH', 'The NFACCT action', 's';
         $target = '';
         for ( my @objects = split_nfacct_list $1 ) {
-           if ( $_ =~ /^([\w%&@~]+)(!)?$/ ) {
-           if ( $2 ) {
-               $prerule .= "-m nfacct --nfacct-name $1 ";
-           } else {
-               $rule .= "-m nfacct --nfacct-name $1 ";
-           }
-           } else {
-           fatal_error "Invalid nfacct object name ($_)";
-           }
+        validate_nfobject( $_, 1 );
+        if ( s/!$// ) {
+            $prerule .= "-m nfacct --nfacct-name $_ ";
+        } else {
+            $rule .= "-m nfacct --nfacct-name $_ ";
+        }
[...]
--- a/Shorewall/Perl/Shorewall/Chains.pm
+++ b/Shorewall/Perl/Shorewall/Chains.pm
[...]
+#
+# Validate and register an nfacct object name
+#
+
+sub validate_nfobject( $;$ ) {
+    my ( $name, $allowbang ) = @_;
+
+    fatal_error "Invalid nfacct object name ($name)" unless $name =~ 
/^[-\w%&@~]+(!)?$/ && ( $allowbang || ! $1 );
+    $nfobjects{$_} = 1;
+}

 From what I can see, "validate_nfobject" adds the nfacct name to the 
nfobjects array. This wasn't the case in Accounting.pm before as the 
object was just validated and (pre)rule was created. Is this intentional 
or have I got this wrong?


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Shorewall-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/shorewall-devel

Reply via email to