summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-21 09:53:52 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-10-21 09:53:52 +0000
commit49ce3ca3742e09c3ce1e5e9a12d9e30a504d711e (patch)
tree487fa26d1df71011f2eb8bf3839f9b317fee2908 /lib
parent0fc3ae4a75ecaed825a2a70294e4a36b993707a7 (diff)
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
Diffstat (limited to 'lib')
-rw-r--r--lib/drb/acl.rb7
1 files changed, 7 insertions, 0 deletions
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