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: AS11403 66.111.0.0/20 X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 6005B201A7 for ; Sun, 21 May 2017 04:01:35 +0000 (UTC) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 60B51206BC for ; Sun, 21 May 2017 00:01:34 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute2.internal (MEProxy); Sun, 21 May 2017 00:01:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= freelancing-gods.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=6q2oSxW/+z74l3J Kc+Ddms4RVofkSQpdtKiOeEXLsX4=; b=B5xdB5j1xs+Yji2njbsJeRJ1iG6Wzk7 GbuUfL3hrqr6Oix2aQ9GtBsaMcW89/7j6nw8csrLtzM6cuRs75vEA46Wu2xrNDt+ TsGhoGtGM2v/Om5RWoJbP0Pc59M+Q+Slfr9ht8LcPWLi9cP6RB+znKmdykvWdhK7 G0Pqs913JX7k= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=6q2oSxW/+z74l3JKc+ Ddms4RVofkSQpdtKiOeEXLsX4=; b=GLY/t74O85QQWlvvK3xwgvLIxg1MpM5tBr 6ebEGApg7Q1f+Ercm3x+qmWZGhErLa3JxhGpACTzu88jR9pMsbMVrFLTk+tY/kyD p5qyZNjg3axqVWuKEslgJuWjhzEpdURmGlVhie6+lF8qgD+/MZn9JFG8In+ccMTP Pfd17Jvu1yghN52W6Nu6ATVaCF5mOLgQgw94Qn9aKaBR679LK68SuZthYqEyZl9C E2bxPlZf3/ey47MnlFr3VyhdVDVSbTbF8JsRrp0dVmDCbGqPFyrZEOwc0SOdV1Dg 35eWPHv/M/Ke0fa9fFP2WL+ZEVzNz+JtzJPz4Hnvlc976znMgjrg== X-ME-Sender: X-Sasl-enc: KCj5F/AnlhkWOjQ05phlvK9fDPKiaYujBO8jQDYxAUZu 1495339293 Received: from [192.168.1.5] (58-7-140-150.dyn.iinet.net.au [58.7.140.150]) by mail.messagingengine.com (Postfix) with ESMTPA id 89562241D3 for ; Sun, 21 May 2017 00:01:33 -0400 (EDT) From: Pat Allan Content-Type: text/plain; charset=us-ascii X-Mao-Original-Outgoing-Id: 517032090.757558-0b0ce7ca9ea08516653017752c2307a3 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: [PATCH] Update respond_to? calls for second argument. Message-Id: Date: Sun, 21 May 2017 14:01:30 +1000 To: clogger-public@bogomips.org X-Mailer: Apple Mail (2.3273) List-Id: Rack (since v2) has started explicitly listing the second (optional) = argument for respond_to?, which matches the underlying Ruby spec. This = patch fixes the calls in both C and Ruby approaches. However, rb_respond_to only accepts a single argument - differing from = the Ruby side of things - so perhaps this patch isn't quite perfect (and = my C skills are very limited, so the whole thing could use a review). --- ext/clogger_ext/clogger.c | 8 ++++++-- lib/clogger/pure.rb | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/clogger_ext/clogger.c b/ext/clogger_ext/clogger.c index 481dd61..622c98c 100644 --- a/ext/clogger_ext/clogger.c +++ b/ext/clogger_ext/clogger.c @@ -963,8 +963,12 @@ static VALUE clogger_init_copy(VALUE clone, VALUE = orig) * used to delegate +:to_path+ checks for Rack webservers that optimize * static file serving */ -static VALUE respond_to(VALUE self, VALUE method) +static VALUE respond_to(int argc, VALUE *argv, VALUE self) { + VALUE method, include_all; + rb_scan_args(argc, argv, "11", &method, &include_all); + if (NIL_P(include_all)) include_all =3D Qfalse; + struct clogger *c =3D clogger_get(self); ID id =3D rb_to_id(method); =20 @@ -1044,7 +1048,7 @@ void Init_clogger_ext(void) rb_define_method(cClogger, "wrap_body?", clogger_wrap_body, 0); rb_define_method(cClogger, "reentrant?", clogger_reentrant, 0); rb_define_method(cClogger, "to_path", to_path, 0); - rb_define_method(cClogger, "respond_to?", respond_to, 1); + rb_define_method(cClogger, "respond_to?", respond_to, -1); rb_define_method(cClogger, "body", body, 0); CONST_GLOBAL_STR(REMOTE_ADDR); CONST_GLOBAL_STR(HTTP_X_FORWARDED_FOR); diff --git a/lib/clogger/pure.rb b/lib/clogger/pure.rb index 77f81b4..fddfe79 100644 --- a/lib/clogger/pure.rb +++ b/lib/clogger/pure.rb @@ -77,8 +77,8 @@ class Clogger @logger.respond_to?(:fileno) ? @logger.fileno : nil end =20 - def respond_to?(m) - :close =3D=3D m.to_sym || @body.respond_to?(m) + def respond_to?(method, include_all=3Dfalse) + :close =3D=3D method.to_sym || @body.respond_to?(method, = include_all) end =20 def to_path --=20 Pat