From 2bb3f8fd600bd0aabe5e4d7c3d1f99d745fc8f49 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 9 Dec 2010 17:14:04 -0800 Subject: respect client_body_buffer_size in Unicorn 3.1.0 This is only needed for concurrency options that do not use TeeInput, since TeeInput automatically handles this for us. --- lib/rainbows/ev_core.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib/rainbows/ev_core.rb') diff --git a/lib/rainbows/ev_core.rb b/lib/rainbows/ev_core.rb index 46fdedf..6f1b5e5 100644 --- a/lib/rainbows/ev_core.rb +++ b/lib/rainbows/ev_core.rb @@ -108,8 +108,12 @@ module Rainbows::EvCore raise IOError, msg, [] end - MAX_BODY = Unicorn::Const::MAX_BODY TmpIO = Unicorn::TmpIO + + def io_for(bytes) + bytes <= CBB ? StringIO.new("") : TmpIO.new + end + def mkinput max = Rainbows.max_bytes len = @hp.content_length @@ -117,9 +121,13 @@ module Rainbows::EvCore if max && (len > max) err_413("Content-Length too big: #{len} > #{max}") end - len <= MAX_BODY ? StringIO.new("") : TmpIO.new + io_for(len) else - max ? CapInput.new(TmpIO.new, self) : TmpIO.new + max ? CapInput.new(io_for(max), self, max) : TmpIO.new end end + + def self.setup + const_set :CBB, Unicorn::TeeInput.client_body_buffer_size + end end -- cgit v1.2.3-24-ge0c7