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 */
> 
> 

Reply via email to