aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-05-31 06:53:58 +0000
committergotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-05-31 06:53:58 +0000
commit3894044308b4dca842d458c336e3daca49450284 (patch)
tree812bfb440a42df569d64324bc7c6dde500dc9a29
parent6622dfe58f7b55b09582b626e844e81b235af090 (diff)
downloadruby-3894044308b4dca842d458c336e3daca49450284.tar.gz
* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should
break the loop if the socket reached to EOF. [ruby-talk:142285] * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): send response without reading the whole request body if keep-alive is diabled. [experimental] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--lib/webrick/httpserver.rb5
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ecd9d2ab49..2c8e5791da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Tue May 31 15:52:45 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
+
+ * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should
+ break the loop if the socket reached to EOF. [ruby-talk:142285]
+
+ * lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): send response
+ without reading the whole request body if keep-alive is diabled.
+ [experimental]
+
Mon May 30 23:48:29 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/lib/tk/macpkg.rb: add PACKAGE_NAME information of Tcl/Tk
diff --git a/lib/webrick/httpserver.rb b/lib/webrick/httpserver.rb
index bdd9c7a620..bce94746c2 100644
--- a/lib/webrick/httpserver.rb
+++ b/lib/webrick/httpserver.rb
@@ -53,6 +53,7 @@ module WEBrick
timeout -= 0.5
end
raise HTTPStatus::EOFError if timeout <= 0
+ raise HTTPStatus::EOFError if sock.eof?
req.parse(sock)
res.request_method = req.request_method
res.request_uri = req.request_uri
@@ -79,7 +80,9 @@ module WEBrick
res.set_error(ex, true)
ensure
if req.request_line
- req.fixup()
+ if req.keep_alive? && res.keep_alive?
+ req.fixup()
+ end
res.send_response(sock)
server.access_log(@config, req, res)
end