You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ic...@apache.org on 2015/10/08 12:03:30 UTC
svn commit: r1707468 - in /httpd/httpd/trunk/modules/http2: h2_util.c
h2_version.h
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 */
Re: svn commit: r1707468 - in /httpd/httpd/trunk/modules/http2: h2_util.c h2_version.h
Posted by Stefan Eissing <st...@greenbytes.de>.
All green from my side now.
//Stefan
> Am 08.10.2015 um 12:50 schrieb Jim Jagielski <ji...@jagunet.com>:
>
> No rush... :)
>
>> On Oct 8, 2015, at 6:45 AM, Stefan Eissing <st...@greenbytes.de> wrote:
>>
>> 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 <ji...@jaguNET.com>:
>>>
>>> I am guessing this should be backported to 2.4.17, right?
>>>
>>>> On Oct 8, 2015, at 6:03 AM, icing@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 */
>>>>
>>>>
>>>
>>
>
Re: svn commit: r1707468 - in /httpd/httpd/trunk/modules/http2: h2_util.c h2_version.h
Posted by Jim Jagielski <ji...@jaguNET.com>.
No rush... :)
> On Oct 8, 2015, at 6:45 AM, Stefan Eissing <st...@greenbytes.de> wrote:
>
> 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 <ji...@jaguNET.com>:
>>
>> I am guessing this should be backported to 2.4.17, right?
>>
>>> On Oct 8, 2015, at 6:03 AM, icing@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 */
>>>
>>>
>>
>
Re: svn commit: r1707468 - in /httpd/httpd/trunk/modules/http2: h2_util.c h2_version.h
Posted by Stefan Eissing <st...@greenbytes.de>.
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 <ji...@jaguNET.com>:
>
> I am guessing this should be backported to 2.4.17, right?
>
>> On Oct 8, 2015, at 6:03 AM, icing@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 */
>>
>>
>
Re: svn commit: r1707468 - in /httpd/httpd/trunk/modules/http2: h2_util.c h2_version.h
Posted by Jim Jagielski <ji...@jaguNET.com>.
I am guessing this should be backported to 2.4.17, right?
> On Oct 8, 2015, at 6:03 AM, icing@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 */
>
>