From: Thomas Lamprecht Date: Thu, 25 Feb 2021 12:07:56 +0000 (+0100) Subject: net: ip from CIDR: sort result X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=ef737f0b3c0a79fb236539da0307929598d1340a net: ip from CIDR: sort result this should not be a real problem yet, but the perl keys hash pseudo random order was an issue way to often to bet on that.. Signed-off-by: Thomas Lamprecht --- diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm index 3b1afdd..38019f7 100644 --- a/src/PVE/Network.pm +++ b/src/PVE/Network.pm @@ -600,13 +600,14 @@ sub get_local_ip_from_cidr { my ($cidr) = @_; my $IPs = {}; + my $i = 1; run_command(['/sbin/ip', 'address', 'show', 'to', $cidr, 'up'], outfunc => sub { if ($_[0] =~ m!^\s*inet(?:6)?\s+($PVE::Tools::IPRE)(?:/\d+|\s+peer\s+)!) { - $IPs->{$1} = 1; + $IPs->{$1} = $i++ if !exists($IPs->{$1}); } }); - return [ keys %{$IPs} ]; + return [ sort { $IPs->{$a} <=> $IPs->{$b} } keys %{$IPs} ]; } sub addr_to_ip {