Skip to content

Commit

Permalink
Improve additional IP addresses validation
Browse files Browse the repository at this point in the history
  • Loading branch information
teclator committed Dec 23, 2020
1 parent 3301791 commit 358cb82
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions src/lib/y2network/dialogs/additional_address.rb
Expand Up @@ -48,17 +48,28 @@ def contents

def run
ret = super
return ret if ret != :ok || @settings.subnet_prefix.start_with?("/")
return ret if ret != :ok

netmask = @settings.subnet_prefix
prefix = IPAddr.new("#{netmask}/#{netmask}").prefix
@settings.subnet_prefix = "/#{prefix}"
@settings.subnet_prefix = subnet_prefix_for?(@settings.subnet_prefix)

ret
end

private

def subnet_prefix_for?(value)
return value if value.start_with?("/")

prefix =
if value.size < 3 || value =~ /^\d{3}$/
value.to_i
else
IPAddr.new("#{netmask}/#{netmask}").prefix
end

"/#{prefix}"
end

def buttons
[ok_button, cancel_button]
end
Expand Down

0 comments on commit 358cb82

Please sign in to comment.