summaryrefslogtreecommitdiffstats
path: root/lib/webrick/server.rb
diff options
context:
space:
mode:
authorgotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-04 00:12:14 +0000
committergotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-04 00:12:14 +0000
commitc6ab282224b451dbc412a7b5ea02dda197fe8054 (patch)
treeb6b13564030628640e7026271b47e878891a4c9c /lib/webrick/server.rb
parent6facf92c611719f5cb1995fc19faeeae38bc2f0b (diff)
downloadruby-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.rb12
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)