Skip to content

Commit

Permalink
mod_http2: adding defensive code for stream EOS handling, in case the…
Browse files Browse the repository at this point in the history
… request handler

     missed to signal it the normal way (eos buckets). Addresses github issues 
     icing/mod_h2#164, icing/mod_h2#167
     and icing/mod_h2#170. 



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1843426 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
icing committed Oct 10, 2018
1 parent 64b98f9 commit 2bebb2c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 3 deletions.
5 changes: 5 additions & 0 deletions CHANGES
@@ -1,6 +1,11 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.1

*) mod_http2: adding defensive code for stream EOS handling, in case the request handler
missed to signal it the normal way (eos buckets). Addresses github issues
https://github.com/icing/mod_h2/issues/164, https://github.com/icing/mod_h2/issues/167
and https://github.com/icing/mod_h2/issues/170. [Stefan Eissing]

*) mod_proxy_scgi, mod_proxy_uwsgi: improve error handling when sending the
body of the response. [Jim Jagielski]

Expand Down
4 changes: 4 additions & 0 deletions modules/http2/h2_session.c
Expand Up @@ -1097,6 +1097,10 @@ static ssize_t stream_data_cb(nghttp2_session *ng2s,
case APR_SUCCESS:
break;

case APR_EOF:
eos = 1;
break;

case APR_ECONNRESET:
case APR_ECONNABORTED:
return NGHTTP2_ERR_CALLBACK_FAILURE;
Expand Down
2 changes: 1 addition & 1 deletion modules/http2/h2_stream.c
Expand Up @@ -919,7 +919,7 @@ apr_status_t h2_stream_out_prepare(h2_stream *stream, apr_off_t *plen,
(long)*plen, *peos);
}
else {
status = APR_EAGAIN;
status = (stream->output && h2_beam_is_closed(stream->output))? APR_EOF : APR_EAGAIN;
ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, c,
H2_STRM_MSG(stream, "prepare, no data"));
}
Expand Down
4 changes: 2 additions & 2 deletions modules/http2/h2_version.h
Expand Up @@ -27,15 +27,15 @@
* @macro
* Version number of the http2 module as c string
*/
#define MOD_HTTP2_VERSION "1.11.2-DEV"
#define MOD_HTTP2_VERSION "1.11.3-DEV"

/**
* @macro
* Numerical representation of the version number of the http2 module
* 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 0x010b02
#define MOD_HTTP2_VERSION_NUM 0x010b03


#endif /* mod_h2_h2_version_h */

0 comments on commit 2bebb2c

Please sign in to comment.