On Wed, Apr 8, 2015 at 5:34 AM, Eric Wong <e...@80x24.org> wrote:
> Running this on http://yhbt.net/yahns-public/ for now.  I originally I
> forgot to disable one of my throwaway middlewares which was not aware of
> Rack hijacking.
>
> From: Eric Wong <e...@80x24.org>
> Subject: [PATCH] proxy_pass: possibly avoid breaking some middlewares
>
> hijack seems incompatible with many middlewares, so return a
> wonky response tuplet just in case...
> ---
>  lib/yahns/proxy_pass.rb | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/yahns/proxy_pass.rb b/lib/yahns/proxy_pass.rb
> index e3ba7f0..48a61af 100644
> --- a/lib/yahns/proxy_pass.rb
> +++ b/lib/yahns/proxy_pass.rb
> @@ -235,6 +235,9 @@ class Yahns::ProxyPass # :nodoc:
>
>      # finally, prepare to emit the headers
>      rr.req_start(c, req << "\r\n".freeze, input, chunked)
> +
> +    # this probably breaks fewer middlewares than returning whatever else...
> +    [ 500, [], [] ]

You probably meant [ 500, {}, [] ] here?

>    rescue => e
>      Yahns::Log.exception(env['rack.logger'], 'proxy_pass', e)
>      [ 502, [ %w(Content-Length 0), %w(Content-Type text/plain) ], [] ]
> --
> EW
>
>

Reply via email to