diff --git a/hooks/create-lxc-config b/hooks/create-lxc-config index 5160a98..0efd733 100755 --- a/hooks/create-lxc-config +++ b/hooks/create-lxc-config @@ -11,15 +11,10 @@ def try_env(key) ENV[key] or abort("enviroment variable '#{key}' not set") end -def address_free?(assigned_subnets, address) - assigned_subnets.find { |s| s.contains?(address) || s == address } -end - -def find_address(subnet, assigned_subsubnets) +def find_address(subnet, assigned_subnets) subnet.enumerate(Limit: 1E4, Short: true)[1..1E4].each do |cidr| - unless address_free?(assigned_subsubnets, cidr) - return cidr - end + assigned = assigned_subnets.find { |s| s.contains?(cidr) || s == cidr } + return cidr unless assigned end end