diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm index 0d2c7c921..b05807308 100644 --- a/Shorewall/Perl/Shorewall/Chains.pm +++ b/Shorewall/Perl/Shorewall/Chains.pm @@ -5909,7 +5909,7 @@ sub isolate_source_interface( $ ) { } elsif ( $source =~ /^(.+?):(.+)$/ ) { $iiface = $1; $inets = $2; - } elsif ( $source =~ /\+|&|~|\..*\./ || $source =~ /^!?\^/ ) { + } elsif ( $source =~ /^!?(?:\+|&|~|\^|\d+\.)/ ) { $inets = $source; } else { $iiface = $source; @@ -6018,7 +6018,7 @@ sub isolate_dest_interface( $$$$ ) { if ( $dest =~ /^(.+?):(.+)$/ ) { $diface = $1; $dnets = $2; - } elsif ( $dest =~ /\+|&|%|~|\..*\./ || $dest =~ /^!?\^/ ) { + } elsif ( $dest =~ /^!?(?:\+|&|%|~|\^|\d+\.)/ ) { $dnets = $dest; } else { $diface = $dest;