From 49ce3ca3742e09c3ce1e5e9a12d9e30a504d711e Mon Sep 17 00:00:00 2001 From: knu Date: Sat, 21 Oct 2017 09:53:52 +0000 Subject: Make ACL::ACLEntry not suppress IPAddr::InvalidPrefixError This is because it would be a user error because a pattern containing a slash shouldn't be a host name pattern but an IP address pattern. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/drb/acl.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/drb/acl.rb') diff --git a/lib/drb/acl.rb b/lib/drb/acl.rb index 7b50644fe4..b004656f09 100644 --- a/lib/drb/acl.rb +++ b/lib/drb/acl.rb @@ -49,6 +49,9 @@ class ACL # +str+ may be "*" or "all" to match any address, an IP address string # to match a specific address, an IP address mask per IPAddr, or one # containing "*" to match part of an IPv4 address. + # + # IPAddr::InvalidPrefixError may be raised when an IP network + # address with an invalid netmask/prefix is given. def initialize(str) if str == '*' or str == 'all' @@ -58,6 +61,10 @@ class ACL else begin @pat = [:ip, IPAddr.new(str)] + rescue IPAddr::InvalidPrefixError + # In this case, `str` shouldn't be a host name pattern + # because it contains a slash. + raise rescue ArgumentError @pat = [:name, dot_pat(str)] end -- cgit v1.2.3