From c6ab282224b451dbc412a7b5ea02dda197fe8054 Mon Sep 17 00:00:00 2001 From: gotoyuzo Date: Thu, 4 Dec 2003 00:12:14 +0000 Subject: * 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 --- lib/webrick/httpresponse.rb | 6 +++--- lib/webrick/server.rb | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb index 667c4c46c..9d6e5522e 100644 --- a/lib/webrick/httpresponse.rb +++ b/lib/webrick/httpresponse.rb @@ -84,10 +84,10 @@ module WEBrick setup_header() send_header(socket) send_body(socket) - rescue Errno::EPIPE - @logger.error("HTTPResponse#send_response: EPIPE occured.") + rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ENOTCONN => ex + @logger.debug(ex) @keep_alive = false - rescue => ex + rescue Exception => ex @logger.error(ex) @keep_alive = false end 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:
" + end sock.close end @tokens.push(nil) -- cgit