diff options
author | Eric Wong <e@80x24.org> | 2015-04-04 00:39:32 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-04-04 00:55:56 +0000 |
commit | d3e29023d02c52ddbcd06d44eb9baeb3890402f7 (patch) | |
tree | 83d8f0b69d62b597884d8a03a6380bdf3af0e51c /lib | |
parent | 58936a8f4d3e9895f80fe092753c0a1c3eb4ac40 (diff) | |
download | yahns-d3e29023d02c52ddbcd06d44eb9baeb3890402f7.tar.gz |
We need to ensure more uncommon cases such as gigantic upstream headers and truncated upstream responses are handled properly and predictably.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/yahns/proxy_http_response.rb | 9 |
1 files changed, 6 insertions, 3 deletions
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 |