From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Status: No, score=-1.1 required=3.0 tests=AWL,BAYES_00,URIBL_BLOCKED shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: yahns-public@yhbt.net Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com [209.85.217.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id A74DE200C7 for ; Wed, 8 Apr 2015 10:38:53 +0000 (UTC) Received: by lbbuc2 with SMTP id uc2so60131719lbb.2 for ; Wed, 08 Apr 2015 03:38:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=N1deMtBrkAfOag7r6IU1/G6CSKTjuiAhvrSwfs3t4SY=; b=IecmIZLMsBq2vLf/FLk/S6GIBndGHrfr67Nqx/8UuBCrKTsikkedom1cWhrLkEn2MV wC/Co+G2cn8JCgqm+w7bS6iZ1VfuUwufREBXKVsdwszGdrmIT/kGT2FHi/i4LjiSvn+i n9YiqA7jsTvb0NrnoHEsHH1C3kvm0rYQT/jCQ3Y72i+2t9PCw8CwmqwDEdmlf24raZp4 E3Fo3wE4AUWpj3nWeQX2gpdKyQT2LoQVLooJrPsWYzW/4eTrszI/X7iF6nO6s5/kcNqF C9cA+izrKERRBn9oXhhm7FsviwezS0udUUg2jvLP8TZDrCwmpva+Kfj7tBVQNgLblLKE AO5w== X-Gm-Message-State: ALoCoQk3NRMcZF2VVn9OleKY7GkeHIVt7TRmhmbfmhDuZD0mCVApXXzwZwm02fxTYBd5vAJmzNU6 X-Received: by 10.112.145.136 with SMTP id su8mr22459779lbb.61.1428489531693; Wed, 08 Apr 2015 03:38:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.112.159.34 with HTTP; Wed, 8 Apr 2015 03:38:21 -0700 (PDT) In-Reply-To: <20150407213431.GA20108@dcvr.yhbt.net> References: <20150407213431.GA20108@dcvr.yhbt.net> From: "Lin Jen-Shin (godfat)" Date: Wed, 8 Apr 2015 18:38:21 +0800 Message-ID: Subject: Re: [RFC] proxy_pass: possibly avoid breaking some middlewares To: Eric Wong Cc: yahns-public@yhbt.net Content-Type: text/plain; charset=UTF-8 List-Id: On Wed, Apr 8, 2015 at 5:34 AM, Eric Wong 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 > 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 > >