diff options
author | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-04 00:12:14 +0000 |
---|---|---|
committer | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-04 00:12:14 +0000 |
commit | c6ab282224b451dbc412a7b5ea02dda197fe8054 (patch) | |
tree | b6b13564030628640e7026271b47e878891a4c9c /lib/webrick/server.rb | |
parent | 6facf92c611719f5cb1995fc19faeeae38bc2f0b (diff) | |
download | ruby-c6ab282224b451dbc412a7b5ea02dda197fe8054.tar.gz ruby-c6ab282224b451dbc412a7b5ea02dda197fe8054.tar.xz ruby-c6ab282224b451dbc412a7b5ea02dda197fe8054.zip |
* lib/webrick/server.rb (GenericServer#start): should rescue
Exception to avoid unexpected aborting. [ruby-core:01853]
* lib/webrick/server.rb (GenericServer#start_thread): should check
that peeraddr isn't nil before printing.
* lib/webrick/httpresponse.rb (HTTPResponse#start_thread): should
rescue Exception to avoid unexpected aborting of thread.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/webrick/server.rb')
-rw-r--r-- | lib/webrick/server.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/webrick/server.rb b/lib/webrick/server.rb index f89115f03..93e3b2ccf 100644 --- a/lib/webrick/server.rb +++ b/lib/webrick/server.rb @@ -102,7 +102,7 @@ module WEBrick rescue Errno::EBADF, IOError => ex # if the listening socket was closed in GenericServer#shutdown, # IO::select raise it. - rescue => ex + rescue Exception => ex msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" @logger.error msg end @@ -148,14 +148,20 @@ module WEBrick @logger.debug "accept: #{addr[3]}:#{addr[1]}" call_callback(:AcceptCallback, sock) block ? block.call(sock) : run(sock) - rescue ServerError, Errno::ENOTCONN => ex + rescue Errno::ENOTCONN + @logger.debug "Errno::ENOTCONN raised" + rescue ServerError => ex msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" @logger.error msg rescue Exception => ex @logger.error ex ensure Thread.current[:WEBrickSocket] = nil - @logger.debug "close: #{addr[3]}:#{addr[1]}" + if addr + @logger.debug "close: #{addr[3]}:#{addr[1]}" + else + @logger.debug "close: <address unknown>" + end sock.close end @tokens.push(nil) |