diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-03 15:21:42 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-03 15:21:42 +0000 |
| commit | fb1133fda33c7ca1749b94c9d71e7b32b3553bc8 (patch) | |
| tree | b7eae6499d1d42acede97348c5359abd932914e8 | |
| parent | 5bac294c115ef1a33e30d285117aa92db848a36b (diff) | |
* 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
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/socket/lib/socket.rb | 6 |
2 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Wed Feb 4 00:17:52 2009 Tanaka Akira <akr@fsij.org> + + * ext/socket/lib/socket.rb (Socket.tcp_server_sockets_port0): skip + socket creation error. + Tue Feb 3 23:37:08 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * ruby.c (load_file_internal): resets EOF flag after parse. 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) |
