diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-01-17 03:31:57 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-01-17 03:31:57 +0000 |
commit | 22908245effa361d8deffd50230254f0fa18e06b (patch) | |
tree | 3bdab7d6b9e4368e6d75912027bf9bd90d5cf599 /lib/rinda | |
parent | a34f9c7e9ae4139e372f10e77fbceb9ea847950f (diff) |
rinda/ring.rb (make_socket): do not keep socket on failures
This prevents leaked FD warnings on test/rinda/test_rinda.rb
when testing on a machine without multicast support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rinda')
-rw-r--r-- | lib/rinda/ring.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rinda/ring.rb b/lib/rinda/ring.rb index 9b3f13eb93..d82ecabfcc 100644 --- a/lib/rinda/ring.rb +++ b/lib/rinda/ring.rb @@ -135,7 +135,6 @@ module Rinda socket = Socket.new(addrinfo.pfamily, addrinfo.socktype, addrinfo.protocol) - @sockets << socket if addrinfo.ipv4_multicast? or addrinfo.ipv6_multicast? then if Socket.const_defined?(:SO_REUSEPORT) then @@ -166,6 +165,11 @@ module Rinda end socket + rescue + socket = socket.close if socket + raise + ensure + @sockets << socket if socket end ## |