From: Lou Lecrivain Date: Fri, 13 Dec 2024 19:45:38 +0000 (+0100) Subject: dhcp: always generate dhcp-range for dnsmasq X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=8794d57125531e2d290c9af841234b52b44e6b98;p=matthieu%2Fpve-network.git dhcp: always generate dhcp-range for dnsmasq (configure_range is now noop) Signed-off-by: lou lecrivain Tested-by: Stefan Hanreich Reviewed-by: Stefan Hanreich Tested-by: Hannes Duerr Link: https://lore.proxmox.com/mailman.183.1734119197.332.pve-devel@lists.proxmox.com Signed-off-by: Thomas Lamprecht --- diff --git a/src/PVE/Network/SDN/Dhcp.pm b/src/PVE/Network/SDN/Dhcp.pm index d48de34..8bbc210 100644 --- a/src/PVE/Network/SDN/Dhcp.pm +++ b/src/PVE/Network/SDN/Dhcp.pm @@ -100,7 +100,6 @@ sub regenerate_config { my ($zone, $subnet_network, $subnet_mask) = split(/-/, $subnet_id); next if $zone ne $zoneid; - next if !$dhcp_ranges; eval { $dhcp_plugin->configure_subnet($config, $zoneid, $vnetid, $subnet_config) }; warn "Could not configure subnet $subnet_id: $@\n" if $@; diff --git a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm index ae52d31..263d24f 100644 --- a/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm +++ b/src/PVE/Network/SDN/Dhcp/Dnsmasq.pm @@ -129,6 +129,15 @@ sub configure_subnet { my $tag = $subnet_config->{id}; + my ($zone, $network, $mask) = split(/-/, $tag); + + if (Net::IP::ip_is_ipv4($network)) { + $mask = (2 ** $mask - 1) << (32 - $mask); + $mask = join( '.', unpack( "C4", pack( "N", $mask ) ) ); + } + + push @{$config}, "dhcp-range=set:$tag,$network,static,$mask,infinite"; + my $option_string; if (ip_is_ipv6($subnet_config->{network})) { $option_string = 'option6'; @@ -139,22 +148,10 @@ sub configure_subnet { push @{$config}, "dhcp-option=tag:$tag,$option_string:dns-server,$subnet_config->{'dhcp-dns-server'}" if $subnet_config->{'dhcp-dns-server'}; - } sub configure_range { - my ($class, $config, $dhcpid, $vnetid, $subnet_config, $range_config) = @_; - - my $tag = $subnet_config->{id}; - - my ($zone, $network, $mask) = split(/-/, $tag); - - if (Net::IP::ip_is_ipv4($network)) { - $mask = (2 ** $mask - 1) << (32 - $mask); - $mask = join( '.', unpack( "C4", pack( "N", $mask ) ) ); - } - - push @{$config}, "dhcp-range=set:$tag,$network,static,$mask,infinite"; + # noop, everything is done within configure_subnet } sub configure_vnet {