diff --git a/ChangeLog b/ChangeLog index c1032232d9..89ec084073 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Feb 23 02:19:51 2014 Tanaka Akira + + * lib/resolv.rb (bind_random_port): Rescue EPERM for FreeBSD which + security.mac.portacl.port_high is changed. + See mac_portacl(4) for details. + Reported by Jakub Szafranski. [ruby-core:60917] [Bug #9544] + Sat Feb 22 23:17:01 2014 Kouhei Sutou * lib/rexml/xpath_parser.rb: Fix indent. diff --git a/lib/resolv.rb b/lib/resolv.rb index 2789aa1c12..7b2f7f031c 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -652,7 +652,9 @@ class Resolv begin port = rangerand(1024..65535) udpsock.bind(bind_host, port) - rescue Errno::EADDRINUSE, Errno::EACCES + rescue Errno::EADDRINUSE, # POSIX + Errno::EACCES, # SunOS: See PRIV_SYS_NFS in privileges(5) + Errno::EPERM # FreeBSD: security.mac.portacl.port_high is configurable. See mac_portacl(4). retry end end