[pve-devel] [PATCH] Added the optional ! (invert sense) of IPs/IPset/range in Firewall rules

Flavius Bindea flav at flav.com
Tue May 12 22:51:46 CEST 2015


Hello,

Spaces are allowed in order to look like iptables syntax.

I'll add some regression tests.

Regards,
Flav

2015-05-12 8:37 GMT+02:00 Dietmar Maurer <dietmar at proxmox.com>:
>> diff --git a/src/PVE/Firewall.pm b/src/PVE/Firewall.pm
>> index 2bdff20..a3b4ccb 100644
>> --- a/src/PVE/Firewall.pm
>> +++ b/src/PVE/Firewall.pm
>> @@ -960,6 +960,11 @@ sub compute_ipfilter_ipset_name {
>>  sub parse_address_list {
>>      my ($str) = @_;
>>
>> +    # if it is a not
>> +    if ($str =~ m/^!\s*(.*)/) {
>> +     $str = $1;
>> +    }
>> +
>
> Why do we allow spaces after '!'?
>
>>      if ($str =~ m/^(\+)(\S+)$/) { # ipset ref
>>       die "ipset name too long\n" if length($str) > ($max_ipset_name_length + 1);
>>       return;
>> @@ -1634,16 +1639,20 @@ sub ruleset_generate_cmdstr {
>>      my $source = $rule->{source};
>>      my $dest = $rule->{dest};
>>
>> +    my $negate = "";
>>      if ($source) {
>> +        if ($source =~ s/^!\s*//) {
>> +            $negate = "! ";
>> +        }
>
> same her -  why spaces?
>
> Also, would you mind to provide some regression tests for
> this new feature?
>



More information about the pve-devel mailing list