]> git.proxmox.com Git - pve-common.git/commitdiff
network: add unique_ips function
authorFabian Ebner <f.ebner@proxmox.com>
Mon, 10 May 2021 12:18:16 +0000 (14:18 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 17 Jun 2021 13:17:37 +0000 (15:17 +0200)
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
src/PVE/Network.pm

index 48268b1a5195b1563c737bedb67d1513dc33a6d9..bb574e0aff75ab53ab37145dcb0a248346ce522e 100644 (file)
@@ -665,4 +665,24 @@ sub canonical_ip {
     return $ip_obj->canon();
 }
 
+# List of unique, canonical IPs in the provided list.
+# Keeps the original order, filtering later duplicates.
+sub unique_ips {
+    my ($ips) = @_;
+
+    my $res = [];
+    my $seen = {};
+
+    for my $ip (@{$ips}) {
+       $ip = canonical_ip($ip);
+
+       next if $seen->{$ip};
+
+       $seen->{$ip} = 1;
+       push @{$res}, $ip;
+    }
+
+    return $res;
+}
+
 1;