diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/PVE/Network/SDN/Dhcp.pm | 1 | ||||
| -rw-r--r-- | src/PVE/Network/SDN/Dhcp/Dnsmasq.pm | 23 | 
2 files changed, 10 insertions, 14 deletions
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 {  | 
