about summary refs log tree commit homepage
path: root/lib/rainbows/dev_fd_response.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-06-10 22:08:04 +0000
committerEric Wong <normalperson@yhbt.net>2011-06-10 22:09:18 +0000
commit1468604be898d17c2cf2da519dccd493c58f4282 (patch)
treeca754932852f0e8f1ccdf3ac64f491d6c81d5fa2 /lib/rainbows/dev_fd_response.rb
parent1aa7eb6608d04a21d1143e7ac09e5219a1208123 (diff)
downloadrainbows-1468604be898d17c2cf2da519dccd493c58f4282.tar.gz
Do not assume middlewares/applications are stupid and blindly
add chunking to responses (we have precedence set by
Rack::Chunked).
Diffstat (limited to 'lib/rainbows/dev_fd_response.rb')
-rw-r--r--lib/rainbows/dev_fd_response.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/rainbows/dev_fd_response.rb b/lib/rainbows/dev_fd_response.rb
index eaa4af4..edc39af 100644
--- a/lib/rainbows/dev_fd_response.rb
+++ b/lib/rainbows/dev_fd_response.rb
@@ -19,7 +19,6 @@ class Rainbows::DevFdResponse < Struct.new(:app)
   Transfer_Encoding = "Transfer-Encoding".freeze
   Rainbows_autochunk = "rainbows.autochunk".freeze
   Rainbows_model = "rainbows.model"
-  HTTP_1_0 = "HTTP/1.0"
   HTTP_VERSION = "HTTP_VERSION"
   Chunked = "chunked"
 
@@ -55,8 +54,12 @@ class Rainbows::DevFdResponse < Struct.new(:app)
       headers.delete(Transfer_Encoding)
     elsif st.pipe? || st.socket? # epoll-able things
       unless headers.include?(Content_Length)
-        if env[Rainbows_autochunk] && HTTP_1_0 != env[HTTP_VERSION]
-          headers[Transfer_Encoding] = Chunked
+        if env[Rainbows_autochunk]
+          case env[HTTP_VERSION]
+          when "HTTP/1.0", nil
+          else
+            headers[Transfer_Encoding] = Chunked
+          end
         else
           env[Rainbows_autochunk] = false
         end