* [RFC] extras: include status messages in responses
@ 2016-07-05 20:39 Eric Wong
0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2016-07-05 20:39 UTC (permalink / raw)
To: yahns-public
This is mainly to benefit curl(1) users who forget to use '-f'
to show failures. Not sure if I want to keep this change, it
seems like bloat; but Rack::ShowStatus pages are totally
overkill...
---
It's a reduction in code, at least :> But not runtime code :<
| 5 +++--
| 5 +++--
| 9 +++------
3 files changed, 9 insertions(+), 10 deletions(-)
--git a/extras/autoindex.rb b/extras/autoindex.rb
index 4deb3ef..238edd9 100644
--- a/extras/autoindex.rb
+++ b/extras/autoindex.rb
@@ -168,8 +168,9 @@ def r(code, exc = nil, env = nil)
if Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include?(code)
[ code, {}, [] ]
else
- h = { 'Content-Type' => 'text/plain', 'Content-Length' => '0' }
- [ code, h, [] ]
+ msg = "#{code} #{Rack::Utils::HTTP_STATUS_CODES[code.to_i]}\n"
+ h = { 'Content-Type' => 'text/plain', 'Content-Length' => msg.size.to_s }
+ [ code, h, [ msg ] ]
end
end
--git a/extras/try_gzip_static.rb b/extras/try_gzip_static.rb
index ed561cb..d412589 100644
--- a/extras/try_gzip_static.rb
+++ b/extras/try_gzip_static.rb
@@ -216,8 +216,9 @@ def r(code, exc = nil, env = nil)
if Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include?(code)
[ code, {}, [] ]
else
- h = { 'Content-Type' => 'text/plain', 'Content-Length' => '0' }
- [ code, h, [] ]
+ msg = "#{code} #{Rack::Utils::HTTP_STATUS_CODES[code.to_i]}\n"
+ h = { 'Content-Type' => 'text/plain', 'Content-Length' => msg.size.to_s }
+ [ code, h, [ msg ] ]
end
end
end
--git a/test/test_extras_try_gzip_static.rb b/test/test_extras_try_gzip_static.rb
index 60129df..b6d5943 100644
--- a/test/test_extras_try_gzip_static.rb
+++ b/test/test_extras_try_gzip_static.rb
@@ -125,11 +125,10 @@ def test_gzip_static
req = "#{m} /COPYING HTTP/1.0\r\n" \
"Range: bytes=66666666-\r\nAccept-Encoding: gzip"
- body = check.call(req) do |head|
+ check.call(req) do |head|
assert_match %r{^Content-Range: bytes \*/#{st.size}\r\n}, head
assert_match %r{\AHTTP/1\.1 416 }, head
end
- assert_nil body
end
end
@@ -181,15 +180,13 @@ def test_gzip_static
Timeout.timeout(30) do # 404
%w(GET HEAD).each do |m|
req = "#{m} /cp-ing HTTP/1.0\r\nAccept-Encoding: gzip"
- body = check.call(req) do |head|
+ check.call(req) do |head|
assert_match %r{HTTP/1\.1 404 }, head
end
- assert_nil body
end
- body = check.call("FOO /COPYING HTTP/1.0") do |head|
+ check.call("FOO /COPYING HTTP/1.0") do |head|
assert_match %r{HTTP/1\.1 405 }, head
end
- assert_nil body
end
Net::HTTP.start(host, port) do |http|
--
EW
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-07-05 20:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-05 20:39 [RFC] extras: include status messages in responses Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/yahns.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).