On Wed, Nov 18, 2015 at 6:34 PM, Davey Shafik <da...@php.net> wrote:

> 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 <da...@php.net> 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
>>
>
>
I have made some further changes to this patch (tidied it up a bit, and
refactored out the duplicate code) and RFC (no longer passing in the number
of headers, this was a holdover from the C API and unnecessary in PHP, just
use count() on the header array).

If you tried out the Docker container, a simple rebuild (perhaps with
--no-cache) will fetch the latest patch and rebuild.

The memory leaks are still there, and I'm not much closer to plugging them
— again, any help would be appreciated.

Thanks,

Reply via email to