mirror of
https://github.com/apache/httpd.git
synced 2025-08-07 04:02:58 +03:00
Sync with v2.0.10 from github:
* Extensive testing in production done by Alessandro Bianchi (@alexskynet) on the v2.0.x versions for stability. Many thanks! * refactored stream response handling to reflect the different phases (response/data/trailers) more clearly and help resolving cpu busy loops. * Adding more negative tests for handling of errored responses to cover edge cases. * mod_http2: fixed handling of response where neiter an EOS nor an ERROR was received as a cause to reset the stream. * mod_proxy_http2: generating error buckets for fault response bodies, to signal failure to fron when response header were already sent. v2.0.9 -------------------------------------------------------------------------------- * Fixed a bug where errors during reponse body handling did not lead to a proper RST_STREAM. Instead processing went into an infinite loop. Extended test cases to catch this condition. v2.0.8 -------------------------------------------------------------------------------- * Delaying input setup of a stream just before processing starts. This allows any EOS indicator arriving from the client before that to take effect. Without knowing that a stream has no input, internal processing has to simulate chunked encoding. This is not wrong, but somewhat more expensive and mod_security has been reported to be allergic to seeing 'chunked' on some requests. See <https://bz.apache.org/bugzilla/show_bug.cgi?id=66282>. * mod_proxy_http2: fixed #235 by no longer forwarding 'Host:' header when request ':authority' is known. Improved test case that did not catch that the previous 'fix' was incorrect. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904522 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -35,7 +35,8 @@ apr_status_t h2_request_add_trailer(h2_request *req, apr_pool_t *pool,
|
||||
const char *name, size_t nlen,
|
||||
const char *value, size_t vlen);
|
||||
|
||||
apr_status_t h2_request_end_headers(h2_request *req, apr_pool_t *pool, int eos, size_t raw_bytes);
|
||||
apr_status_t h2_request_end_headers(h2_request *req, apr_pool_t *pool,
|
||||
size_t raw_bytes);
|
||||
|
||||
h2_request *h2_request_clone(apr_pool_t *p, const h2_request *src);
|
||||
|
||||
@@ -45,9 +46,11 @@ h2_request *h2_request_clone(apr_pool_t *p, const h2_request *src);
|
||||
*
|
||||
* @param req the h2 request to process
|
||||
* @param conn the connection to process the request on
|
||||
* @param no_body != 0 iff the request is known to have no body
|
||||
* @return the request_rec representing the request
|
||||
*/
|
||||
request_rec *h2_create_request_rec(const h2_request *req, conn_rec *conn);
|
||||
request_rec *h2_create_request_rec(const h2_request *req, conn_rec *conn,
|
||||
int no_body);
|
||||
|
||||
#if AP_HAS_RESPONSE_BUCKETS
|
||||
apr_bucket *h2_request_create_bucket(const h2_request *req, request_rec *r);
|
||||
|
Reference in New Issue
Block a user