Jim, give me a moment. Yann's code reviewing skill are just too good... //Stefan
> Am 08.10.2015 um 12:44 schrieb Jim Jagielski <j...@jagunet.com>: > > I am guessing this should be backported to 2.4.17, right? > >> On Oct 8, 2015, at 6:03 AM, ic...@apache.org wrote: >> >> Author: icing >> Date: Thu Oct 8 10:03:30 2015 >> New Revision: 1707468 >> >> URL: http://svn.apache.org/viewvc?rev=1707468&view=rev >> Log: >> fix for empty responses with nghttp2 v1.3.x, bump version to 1.0.0 >> >> Modified: >> httpd/httpd/trunk/modules/http2/h2_util.c >> httpd/httpd/trunk/modules/http2/h2_version.h >> >> Modified: httpd/httpd/trunk/modules/http2/h2_util.c >> URL: >> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_util.c?rev=1707468&r1=1707467&r2=1707468&view=diff >> ============================================================================== >> --- httpd/httpd/trunk/modules/http2/h2_util.c (original) >> +++ httpd/httpd/trunk/modules/http2/h2_util.c Thu Oct 8 10:03:30 2015 >> @@ -484,19 +484,38 @@ int h2_util_has_flush_or_eos(apr_bucket_ >> >> int h2_util_has_eos(apr_bucket_brigade *bb, apr_size_t len) >> { >> - apr_bucket *b, *end; >> + apr_bucket *b; >> >> - apr_status_t status = last_not_included(bb, len, 0, 0, &end); >> - if (status != APR_SUCCESS) { >> - return status; >> + if (len == 0) { >> + /* special case: this is only true, if there are only meta >> + * and an eos bucket in the brigade head. >> + */ >> + for (b = APR_BRIGADE_FIRST(bb); >> + b != APR_BRIGADE_SENTINEL(bb); >> + b = APR_BUCKET_NEXT(b)) >> + { >> + if (!APR_BUCKET_IS_METADATA(b) && b->length != 0) { >> + break; >> + } >> + else if (APR_BUCKET_IS_EOS(b)) { >> + return 1; >> + } >> + } >> } >> - >> - for (b = APR_BRIGADE_FIRST(bb); >> - b != APR_BRIGADE_SENTINEL(bb) && b != end; >> - b = APR_BUCKET_NEXT(b)) >> - { >> - if (APR_BUCKET_IS_EOS(b)) { >> - return 1; >> + else { >> + apr_bucket *end; >> + apr_status_t status = last_not_included(bb, len, 0, 0, &end); >> + if (status != APR_SUCCESS) { >> + return status; >> + } >> + >> + for (b = APR_BRIGADE_FIRST(bb); >> + b != APR_BRIGADE_SENTINEL(bb) && b != end; >> + b = APR_BUCKET_NEXT(b)) >> + { >> + if (APR_BUCKET_IS_EOS(b)) { >> + return 1; >> + } >> } >> } >> return 0; >> >> Modified: httpd/httpd/trunk/modules/http2/h2_version.h >> URL: >> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http2/h2_version.h?rev=1707468&r1=1707467&r2=1707468&view=diff >> ============================================================================== >> --- httpd/httpd/trunk/modules/http2/h2_version.h (original) >> +++ httpd/httpd/trunk/modules/http2/h2_version.h Thu Oct 8 10:03:30 2015 >> @@ -20,7 +20,7 @@ >> * @macro >> * Version number of the h2 module as c string >> */ >> -#define MOD_HTTP2_VERSION "0.9.9" >> +#define MOD_HTTP2_VERSION "1.0.0" >> >> /** >> * @macro >> @@ -28,7 +28,7 @@ >> * release. This is a 24 bit number with 8 bits for major number, 8 bits >> * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. >> */ >> -#define MOD_HTTP2_VERSION_NUM 0x000909 >> +#define MOD_HTTP2_VERSION_NUM 0x010000 >> >> >> #endif /* mod_h2_h2_version_h */ >> >> >