about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-04-04 00:39:32 +0000
committerEric Wong <e@80x24.org>2015-04-04 00:55:56 +0000
commitd3e29023d02c52ddbcd06d44eb9baeb3890402f7 (patch)
tree83d8f0b69d62b597884d8a03a6380bdf3af0e51c /lib
parent58936a8f4d3e9895f80fe092753c0a1c3eb4ac40 (diff)
downloadyahns-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.rb9
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