summaryrefslogtreecommitdiffstats
path: root/ext/socket/lib
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-03 15:21:42 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-03 15:21:42 +0000
commitfb1133fda33c7ca1749b94c9d71e7b32b3553bc8 (patch)
treeb7eae6499d1d42acede97348c5359abd932914e8 /ext/socket/lib
parent5bac294c115ef1a33e30d285117aa92db848a36b (diff)
downloadruby-fb1133fda33c7ca1749b94c9d71e7b32b3553bc8.tar.gz
ruby-fb1133fda33c7ca1749b94c9d71e7b32b3553bc8.tar.xz
ruby-fb1133fda33c7ca1749b94c9d71e7b32b3553bc8.zip
* ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): skip
socket creation error. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/lib')
-rw-r--r--ext/socket/lib/socket.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb
index c9b70433c..0fbce1ca6 100644
--- a/ext/socket/lib/socket.rb
+++ b/ext/socket/lib/socket.rb
@@ -232,7 +232,11 @@ class Socket
sockets = []
port = nil
ai_list.each {|ai|
- s = Socket.new(ai.pfamily, ai.socktype, ai.protocol)
+ begin
+ s = Socket.new(ai.pfamily, ai.socktype, ai.protocol)
+ rescue SystemCallError
+ next
+ end
sockets << s
s.ipv6only! if ai.ipv6?
s.setsockopt(:SOCKET, :REUSEADDR, 1)