Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:89276 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 31810 invoked from network); 18 Nov 2015 23:35:02 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 18 Nov 2015 23:35:02 -0000 Authentication-Results: pb1.pair.com header.from=me@daveyshafik.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=me@daveyshafik.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain daveyshafik.com from 209.85.160.180 cause and error) X-PHP-List-Original-Sender: me@daveyshafik.com X-Host-Fingerprint: 209.85.160.180 mail-yk0-f180.google.com Received: from [209.85.160.180] ([209.85.160.180:33400] helo=mail-yk0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 86/51-21962-42B0D465 for ; Wed, 18 Nov 2015 18:35:01 -0500 Received: by ykdv3 with SMTP id v3so88982833ykd.0 for ; Wed, 18 Nov 2015 15:34:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daveyshafik-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=4QxzC2/TxlffYGcE3IZTdFtPSe4JwkT5eGlX14ukcPU=; b=PJHy5PWYa16VSPFkQBLy3V5IztOXf4MuQGzYMhoxiE3oB+G5BaaGuDTWnyXpCoiy6z slV+vUJsXdELC7LR/7uHJxbeafFRnGtdEUoPjZnY9VoPgOMlzKHENAGZlPQtBXfqjg9C ASVrGKRuCF5lAUOHv3Jap6bLC21z3bA4KvbKFSKONhPtzKzGvM9QgBJUQ3kI4YQHfi8v P3bKrqU8TwOkUAYcDH+G4c9l8U9nT59YbAOflHYwIuQDHIOoPgLdkCmouj7SfCVa/yll r0K1tOqgdeWNkZYLeU6yxdnfD+4HbNC7sTCe41SH23Iw7E1Ux8/n35OAXtl9UAt8xNdR ZdoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=4QxzC2/TxlffYGcE3IZTdFtPSe4JwkT5eGlX14ukcPU=; b=fe2ZF5Pn8oIEQ+2vv6pokQrdIvDvdm47LmdCWA/folr5uGj+7YlVkbSTDT4Lws+KMR kCTd13KXpHhwZZEXexLpSrzk6sWgl1cLxQIOre/OUWhA99wACMEqU14x1aI6VuYG19go c/E6CLy4/UV+d+0X8fCjiEBBkSQm6phhDXv5o65uVA4ipP9jjiamCM1KFEz6PGx0EvP6 ObdLOBBfhVUhVtIVfKhpR8ZAvpqTrnWpAD64d/aNNwfk75qL1XePXt9Y/207lAfgAzsM LDXhDqXWApLitWod5zpK69I5s5TVClx44S1d1oxLsvRhAqZJzFAYGb3AAH7hVqXC3C9p TuHQ== X-Gm-Message-State: ALoCoQmkXE0JgNwwdPP5mMDYZc6md0u9H9AT+0OYk5FXWXKSV2Di8YbMLSHwgBly8gjRKSBOFj2M MIME-Version: 1.0 X-Received: by 10.129.80.138 with SMTP id e132mr4476157ywb.90.1447889697823; Wed, 18 Nov 2015 15:34:57 -0800 (PST) Sender: me@daveyshafik.com Received: by 10.13.253.130 with HTTP; Wed, 18 Nov 2015 15:34:57 -0800 (PST) In-Reply-To: References: Date: Wed, 18 Nov 2015 18:34:57 -0500 X-Google-Sender-Auth: j8jgixsOmvkf-LLB5HZkpAQGbVk Message-ID: To: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=001a1147fa521d18c60524d9172c Subject: Re: [RFC] HTTP/2 Server Push support in ext/curl From: davey@php.net (Davey Shafik) --001a1147fa521d18c60524d9172c Content-Type: text/plain; charset=UTF-8 Forgot to mention, if you'd like to try this patch for yourself, check out my Docker container stuff here (with instructions :): https://github.com/dshafik/php-http2-push-example On Wed, Nov 18, 2015 at 5:31 PM, Davey Shafik wrote: > Hey folks, > > I'd like to introduce a new RFC for 7.1 that will add support for HTTP/2 > Server Push to ext/curl. > > This is exposing new features from libcurl to user land, which means they > must have the latest (in fact currently unreleased, due to a bugfix) > version of libcurl. > > For those who are not aware, HTTP/2 support is growing rapidly, and is > already available in 60% of browsers, Apache 2 (via mod_h2), nginx, and > even IIS. > > The RFC can be seen here: https://wiki.php.net/rfc/curl_http2_push > With the patch at: > https://github.com/php/php-src/compare/master...dshafik:curl-http2-push > > The patch still needs some work, possibly a lot of work due to my > inexperience with C. Specifically, there are some memory leaks I've managed > to introduce with the headers array stuff (I'm pretty sure, lines > 529-535[1]) and there is some duplicated code from interface.c (lines > 454-523[2]) that I was unable to refactor out successfully to it's own > function. Plus, on the whole it seems incredibly untidy to me. > > Feedback welcome! > > - Davey > > [1] > https://github.com/php/php-src/compare/master...dshafik:curl-http2-push#diff-ab7a9164033bd55887d45d0a6cb837eeR529 > [2] > https://github.com/php/php-src/compare/master...dshafik:curl-http2-push#diff-ab7a9164033bd55887d45d0a6cb837eeR451 > --001a1147fa521d18c60524d9172c--