[pve-devel] [PATCH V2 pve-network 3/7] use canonical ipv6 address (RFC 5952) everywhere

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Dec 18 18:02:14 CET 2020


On 03/12/2020 10:19, Alexandre Derumier wrote:
> we want only 1 format for ipam database
> 
> Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
> ---
>  PVE/Network/SDN/Dns/PowerdnsPlugin.pm | 3 +--
>  PVE/Network/SDN/Ipams/PVEPlugin.pm    | 5 +++--
>  PVE/Network/SDN/Subnets.pm            | 9 ++++++++-
>  3 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/PVE/Network/SDN/Dns/PowerdnsPlugin.pm b/PVE/Network/SDN/Dns/PowerdnsPlugin.pm
> index b00432e..3fbd595 100644
> --- a/PVE/Network/SDN/Dns/PowerdnsPlugin.pm
> +++ b/PVE/Network/SDN/Dns/PowerdnsPlugin.pm
> @@ -7,8 +7,7 @@ use PVE::Cluster;
>  use PVE::Tools;
>  use JSON;
>  use Net::IP;
> -use NetAddr::IP;
> -
> +use NetAddr::IP qw(:lower);
>  use base('PVE::Network::SDN::Dns::Plugin');
>  
>  sub type {
> diff --git a/PVE/Network/SDN/Ipams/PVEPlugin.pm b/PVE/Network/SDN/Ipams/PVEPlugin.pm
> index e4c9ef7..a2e7d86 100644
> --- a/PVE/Network/SDN/Ipams/PVEPlugin.pm
> +++ b/PVE/Network/SDN/Ipams/PVEPlugin.pm
> @@ -6,7 +6,8 @@ use PVE::INotify;
>  use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_register_file cfs_lock_file);
>  use PVE::Tools;
>  use JSON;
> -use NetAddr::IP;
> +use NetAddr::IP qw(:lower);
> +
>  use Net::IP;
>  use Digest::SHA;
>  
> @@ -134,7 +135,7 @@ sub add_next_freeip {
>  	    while(1) {
>  		$iplist++;
>  		last if $iplist eq $broadcast;
> -		my $ip = $iplist->addr();
> +		my $ip = $iplist->canon();
>  		next if defined($dbsubnet->{ips}->{$ip});
>  		$freeip = $ip;
>  		last;
> diff --git a/PVE/Network/SDN/Subnets.pm b/PVE/Network/SDN/Subnets.pm
> index 74a538c..81970a1 100644
> --- a/PVE/Network/SDN/Subnets.pm
> +++ b/PVE/Network/SDN/Subnets.pm
> @@ -5,6 +5,7 @@ use warnings;
>  
>  use Net::Subnet qw(subnet_matcher);
>  use Net::IP;
> +use NetAddr::IP qw(:lower);
>  
>  use PVE::Cluster qw(cfs_read_file cfs_write_file cfs_lock_file);
>  use PVE::Network::SDN::Dns;
> @@ -213,6 +214,9 @@ sub add_ip {
>  
>      return if !$subnet || !$ip; 
>  
> +    my $ipaddr = new NetAddr::IP($ip);

nit, please do not use old style new, do:

my $ipaddr = NetAddr::IP->new($ip);

> +    $ip = $ipaddr->canon();
> +
>      my $ipamid = $zone->{ipam};
>      my $dns = $zone->{dns};
>      my $dnszone = $zone->{dnszone};
> @@ -255,7 +259,10 @@ sub add_ip {
>  sub del_ip {
>      my ($zone, $subnetid, $subnet, $ip, $hostname) = @_;
>  
> -    return if !$subnet;
> +    return if !$subnet || !$ip;
> +
> +    my $ipaddr = new NetAddr::IP($ip);

same as above, prefer

my $ipaddr = NetAddr::IP->new($ip);

> +    $ip = $ipaddr->canon();
>  
>      my $ipamid = $zone->{ipam};
>      my $dns = $zone->{dns};
> 






More information about the pve-devel mailing list