mirror of
git://git.proxmox.com/git/pve-network.git
synced 2025-03-06 00:58:16 +03:00
sdn: dhcp: rollback allocated ips on failure
If DHCP is configured for IPv4 and IPv6, failing to obtain an IPv6 IP does not roll back the allocation made for IPv4. This patch rolls back any changes made in case of failure, so that IP allocation is actually atomic. Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com> Reviewed-by: Stefan Lendl <s.lendl@proxmox.com> Tested-by: Stefan Lendl <s.lendl@proxmox.com> Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
This commit is contained in:
parent
c60a7dc432
commit
27b54a086b
@ -131,7 +131,17 @@ sub add_next_free_cidr {
|
||||
last;
|
||||
}
|
||||
}
|
||||
die "can't find any free ip" if !$ip && $subnetcount > 0;
|
||||
|
||||
if (!$ip && $subnetcount > 0) {
|
||||
foreach my $version (sort keys %{$ips}) {
|
||||
my $ip = $ips->{$version};
|
||||
my ($subnetid, $subnet) = PVE::Network::SDN::Subnets::find_ip_subnet($ip, $subnets);
|
||||
|
||||
PVE::Network::SDN::Subnets::del_ip($zone, $subnetid, $subnet, $ip, $hostname, $mac, $skipdns);
|
||||
}
|
||||
|
||||
die "can't find any free ip in zone $zoneid for IPv$ipversion";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user