Ah, good and useful hint! Currently working on a better patch and backport that myself then. Thanks!
> Am 08.10.2015 um 12:46 schrieb Jim Jagielski <j...@jagunet.com>: > > The mod_http2 stuff for 2.4.x is CTR, meaning that one does not > need to propose a backport in STATUS for it to be included; rather, > one simply patches 2.4 as required, while ensuring that one doesn't > break anything :) > >> On Oct 8, 2015, at 6:06 AM, Stefan Eissing <stefan.eiss...@greenbytes.de> >> wrote: >> >> I need a tiny patch for mod_http2 that solves an empty response problem with >> the latest nghttp2 libraries: >> >> Jim, can we get that still in? Commited in trunk as r1707468. >> >> //Stefan >> >> Index: modules/http2/h2_util.c >> =================================================================== >> --- modules/http2/h2_util.c (revision 1707467) >> +++ modules/http2/h2_util.c (revision 1707468) >> @@ -484,20 +484,39 @@ >> >> 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; >> } >> Index: modules/http2/h2_version.h >> =================================================================== >> --- modules/http2/h2_version.h (revision 1707467) >> +++ modules/http2/h2_version.h (revision 1707468) >> @@ -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 */ >> >