[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