From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Status: No, score=-5.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from mail-pf0-f187.google.com (mail-pf0-f187.google.com [209.85.192.187]) (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 8F6722045C for ; Thu, 12 May 2016 02:28:04 +0000 (UTC) Received: by mail-pf0-f187.google.com with SMTP id d4sf19328536pfd.1 for ; Wed, 11 May 2016 19:28:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=sender:date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=fHxfqp3PBRuW5thpGwprat2oFDSUp6BrqB3Ro1PKX3w=; b=eCeq3sIZic0H0OaCC7lGutZ9Qtn99lya62u3HMJCoD718kaOGKZ3ZGo+p1Cl0Vk/Py iKSFdbKNEi31xpkx0YYXDsrYzpcMN7gVYKqYzH5QJO5BdzHGWaWLad76OgbLzcTm8Z4J MGWne/SW6ROYAEo5IbmLbWLch//AEygbsUdprA8HXF+T6QC1Ohcs9DsN6f/5DvD1HxQ+ owALNBZlYyNF+99UgmuGndT+R67O0EjS+tId9IEwodkG9iOjwouVvJxaRRUNjt8G/5NY 2K8BTOgCyBpCqmGzGTzSAt0I/iAhqLooRI2v9WYxDs/G0IVYzV3b17mqMcfU5EwKp1e4 klEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=sender:x-gm-message-state:date:from:to:subject:message-id :references:mime-version:content-disposition:in-reply-to :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=fHxfqp3PBRuW5thpGwprat2oFDSUp6BrqB3Ro1PKX3w=; b=Dw2SqeNoP2iSLKlvGvseDYaVF0rxW8H+uSffVAlKkF0YpX7qDhGSyuv8fyzp4NYno+ 6uXIW2PI3apOAr9PooyvaLUeErjAnlUlSp8duX1zBNlIrpZ7oTl194MyeCBwHC2uSMAM 4Nl+sK5fzfKo1fl8BboadmuOi9n1ciTJeyIAAPrpYl+SOgwVDOrWw7gkQyontbmrrLbr IjkFtN+K2D1Zl/iRYB+kUSZqoNoa11YrDrDrcv2vHv65Ob11CmV2A7Kvm/R3DFuq31x8 A5Fj4v7hhjS5+XuOOGm0UmUr/hLGxbDAAswE0AqT1SRhEhOUrTT9Z7RAInZR3ffTBn8l Q9tA== Sender: rack-devel@googlegroups.com X-Gm-Message-State: AOPr4FVJDjUBc6BAoeRQ0oxoTfO30CaJ3MVTkF57qR4t0DRYqZeGAPo4DOKYv2KW3xtidQ== X-Received: by 10.140.42.182 with SMTP id c51mr239721qga.7.1463020083923; Wed, 11 May 2016 19:28:03 -0700 (PDT) X-BeenThere: rack-devel@googlegroups.com Received: by 10.140.31.230 with SMTP id f93ls1566397qgf.50.gmail; Wed, 11 May 2016 19:28:03 -0700 (PDT) X-Received: by 10.129.85.76 with SMTP id j73mr4742086ywb.55.1463020083526; Wed, 11 May 2016 19:28:03 -0700 (PDT) Received: from dcvr.yhbt.net (dcvr.yhbt.net. [64.71.152.64]) by gmr-mx.google.com with ESMTPS id vo1si1936977pab.2.2016.05.11.19.28.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2016 19:28:03 -0700 (PDT) Received-SPF: pass (google.com: domain of e@80x24.org designates 64.71.152.64 as permitted sender) client-ip=64.71.152.64; Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E5A952045C; Thu, 12 May 2016 02:28:02 +0000 (UTC) Date: Thu, 12 May 2016 02:28:14 +0000 From: Eric Wong To: rack-devel@googlegroups.com Subject: [PATCH] lint: clarify "rack.hijack" case-sensitivity in response Message-ID: <20160512022814.GA8332@dcvr.yhbt.net> References: <20160511050451.GA23544@dcvr.yhbt.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline In-Reply-To: X-Original-Sender: e@80x24.org X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of e@80x24.org designates 64.71.152.64 as permitted sender) smtp.mailfrom=e@80x24.org Reply-To: rack-devel@googlegroups.com Precedence: list Mailing-list: list rack-devel@googlegroups.com; contact rack-devel+owners@googlegroups.com List-ID: X-Google-Group-Id: 486215384060 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Based on my inspection of the webrick handler, it was ambiguous as to whether "rack.hijack" is supposed to be case-sensitive or not. Thankfully James cleared it up: http://mid.gmane.org/CABGa_T8ihnKWwguObGCQqF-qBA+_v1YwM1-2tv3y5ShbWo4scw@mail.gmail.com Note: I manually reapplied the SPEC change in commit 72185735ad0c3aea4e37ab66b0c370e42180df39 ("Fixed link and rack.session's indentation in SPEC") after regenerating it from lint.rb --- James Tucker wrote: > It is case sensitive. Would welcome a spec bug fix patch to declare it so. If you prefer to pull: The following changes since commit 9073125f71afd615091f575d74ec468a0b1b79bf: bumping version (2016-05-06 15:51:18 -0500) are available in the git repository at: git://80x24.org/rack.git lint-case-sens for you to fetch changes up to daef95d81b1c3b4dfe3e955d5f34d1be569d86b0: lint: clarify "rack.hijack" case-sensitivity in response (2016-05-12 02:06:36 +0000) ---------------------------------------------------------------- Eric Wong (1): lint: clarify "rack.hijack" case-sensitivity in response SPEC | 3 ++- lib/rack/lint.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/SPEC b/SPEC index 7e3af40..a5999b3 100644 --- a/SPEC +++ b/SPEC @@ -200,7 +200,8 @@ have been sent. In order to do this, an application may set the special header rack.hijack to an object that responds to call accepting an argument that conforms to the rack.hijack_io -protocol. +protocol. Unlike normal response headers, rack.hijack +is case-sensitive. After the headers have been sent, and this hijack callback has been called, the application is now responsible for the remaining lifecycle of the IO. The application is also responsible for maintaining HTTP diff --git a/lib/rack/lint.rb b/lib/rack/lint.rb index 54d3782..6eb2476 100644 --- a/lib/rack/lint.rb +++ b/lib/rack/lint.rb @@ -573,7 +573,8 @@ def check_hijack_response(headers, env) ## In order to do this, an application may set the special header ## rack.hijack to an object that responds to call ## accepting an argument that conforms to the rack.hijack_io - ## protocol. + ## protocol. Unlike normal response headers, rack.hijack + ## is case-sensitive. ## ## After the headers have been sent, and this hijack callback has been ## called, the application is now responsible for the remaining lifecycle -- EW -- --- You received this message because you are subscribed to the Google Groups "Rack Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to rack-devel+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout.