From d3e29023d02c52ddbcd06d44eb9baeb3890402f7 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 4 Apr 2015 00:39:32 +0000 Subject: proxy_pass: more tests for giant headers and truncations We need to ensure more uncommon cases such as gigantic upstream headers and truncated upstream responses are handled properly and predictably. --- lib/yahns/proxy_http_response.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/yahns/proxy_http_response.rb b/lib/yahns/proxy_http_response.rb index 31505d3..8f4790e 100644 --- a/lib/yahns/proxy_http_response.rb +++ b/lib/yahns/proxy_http_response.rb @@ -28,10 +28,13 @@ module Yahns::HttpResponse # :nodoc: def proxy_err_response(code, req_res, exc, wbuf) logger = @hs.env['rack.logger'] - if exc - Yahns::Log.exception(logger, 'upstream error', exc) - else + case exc + when nil logger.error('premature upstream EOF') + when Kcar::ParserError + logger.error("upstream response error: #{exc.message}") + else + Yahns::Log.exception(logger, 'upstream error', exc) end # try to write something, but don't care if we fail Integer === code and -- cgit v1.2.3-24-ge0c7