diff options
-rw-r--r-- | lib/yahns/http_response.rb | 4 | ||||
-rw-r--r-- | lib/yahns/proxy_http_response.rb | 2 | ||||
-rw-r--r-- | lib/yahns/wbuf.rb | 5 | ||||
-rw-r--r-- | test/test_wbuf.rb | 9 |
4 files changed, 11 insertions, 9 deletions
diff --git a/lib/yahns/http_response.rb b/lib/yahns/http_response.rb index 531194f..d957df6 100644 --- a/lib/yahns/http_response.rb +++ b/lib/yahns/http_response.rb @@ -62,7 +62,7 @@ module Yahns::HttpResponse # :nodoc: alive = Yahns::StreamFile.new(body, alive, offset, count) body = nil end - wbuf = Yahns::Wbuf.new(body, alive, self.class.output_buffer_tmpdir) + wbuf = Yahns::Wbuf.new(body, alive) rv = wbuf.wbuf_write(self, header) if body && ! alive.respond_to?(:call) # skip body.each if hijacked body.each { |chunk| rv = wbuf.wbuf_write(self, chunk) } @@ -199,7 +199,7 @@ module Yahns::HttpResponse # :nodoc: chunk = rv # hope the skb grows when we loop into the trywrite when :wait_writable, :wait_readable if k.output_buffering - wbuf = Yahns::Wbuf.new(body, alive, k.output_buffer_tmpdir) + wbuf = Yahns::Wbuf.new(body, alive) rv = wbuf.wbuf_write(self, chunk) break else diff --git a/lib/yahns/proxy_http_response.rb b/lib/yahns/proxy_http_response.rb index 61f1539..8de5b4f 100644 --- a/lib/yahns/proxy_http_response.rb +++ b/lib/yahns/proxy_http_response.rb @@ -21,7 +21,7 @@ module Yahns::HttpResponse # :nodoc: def wbuf_alloc(req_res) if req_res.proxy_pass.proxy_buffering - Yahns::Wbuf.new(nil, req_res.alive, self.class.output_buffer_tmpdir) + Yahns::Wbuf.new(nil, req_res.alive) else Yahns::WbufLite.new(req_res) end diff --git a/lib/yahns/wbuf.rb b/lib/yahns/wbuf.rb index 1010c86..583df10 100644 --- a/lib/yahns/wbuf.rb +++ b/lib/yahns/wbuf.rb @@ -32,9 +32,8 @@ class Yahns::Wbuf # :nodoc: include Yahns::WbufCommon attr_reader :busy - def initialize(body, persist, tmpdir) + def initialize(body, persist) @tmpio = nil - @tmpdir = tmpdir @sf_offset = @sf_count = 0 @wbuf_persist = persist # whether or not we keep the connection alive @body = body # something we call #close on when done writing @@ -58,7 +57,7 @@ class Yahns::Wbuf # :nodoc: @busy = rv end until @busy - @tmpio ||= Yahns::TmpIO.new(@tmpdir) + @tmpio ||= Yahns::TmpIO.new(c.class.output_buffer_tmpdir) @sf_count += String === buf ? @tmpio.write(buf) : wbuf_writev(buf) # we spent some time copying to the FS, try to write to diff --git a/test/test_wbuf.rb b/test/test_wbuf.rb index 990ad9d..1382086 100644 --- a/test/test_wbuf.rb +++ b/test/test_wbuf.rb @@ -9,6 +9,9 @@ class TestWbuf < Testcase class KgioUS < UNIXSocket include Kgio::SocketMethods + def self.output_buffer_tmpdir + Dir.tmpdir + end end def socketpair @@ -20,7 +23,7 @@ class TestWbuf < Testcase buf = "*" * (16384 * 2) nr = 1000 [ true, false ].each do |persist| - wbuf = Yahns::Wbuf.new([], persist, Dir.tmpdir) + wbuf = Yahns::Wbuf.new([], persist) assert_equal false, wbuf.busy a, b = socketpair assert_nil wbuf.wbuf_write(a, "HIHI") @@ -71,7 +74,7 @@ class TestWbuf < Testcase break end while true end - wbuf = Yahns::Wbuf.new([], true, Dir.tmpdir) + wbuf = Yahns::Wbuf.new([], true) rv1 = wbuf.wbuf_write(a, buf) rv2 = wbuf.wbuf_flush(a) @@ -104,7 +107,7 @@ class TestWbuf < Testcase def test_wbuf_flush_close pipe = cloexec_pipe persist = true - wbuf = Yahns::Wbuf.new(pipe[0], persist, Dir.tmpdir) + wbuf = Yahns::Wbuf.new(pipe[0], persist) refute wbuf.respond_to?(:close) # we don't want this for HttpResponse body sp = socketpair rv = nil |