about summary refs log tree commit homepage
path: root/lib/yahns/proxy_http_response.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/yahns/proxy_http_response.rb')
-rw-r--r--lib/yahns/proxy_http_response.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/yahns/proxy_http_response.rb b/lib/yahns/proxy_http_response.rb
index 7df2834..d4a3dda 100644
--- a/lib/yahns/proxy_http_response.rb
+++ b/lib/yahns/proxy_http_response.rb
@@ -146,6 +146,12 @@ module Yahns::HttpResponse # :nodoc:
     have_body
   end
 
+  def read_len(len)
+    max = 0x2000
+    max = len if len && len < max
+    max
+  end
+
   def proxy_read_body(tip, kcar, req_res)
     chunk = ''.dup if kcar.chunked?
     len = kcar.body_bytes_left
@@ -153,7 +159,7 @@ module Yahns::HttpResponse # :nodoc:
     alive = req_res.alive
     wbuf = req_res.resbuf
 
-    case tmp = tip.shift || req_res.kgio_tryread(0x2000, rbuf)
+    case tmp = tip.shift || req_res.kgio_tryread(read_len(len), rbuf)
     when String
       if len
         kcar.body_bytes_left -= tmp.size # progress for body_eof? => true