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 2019/03/13 12:59:50 UTC
svn commit: r1855414 - in /httpd/httpd/patches/2.4.x:
h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch
h2-mega-v1.14.1-backport-bugs-and-whistles.patch
Author: icing
Date: Wed Mar 13 12:59:50 2019
New Revision: 1855414
URL: http://svn.apache.org/viewvc?rev=1855414&view=rev
Log:
Re-integrated r1852989 into backport patch.
Added:
httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch
- copied, changed from r1855413, httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles.patch
Removed:
httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles.patch
Copied: httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch (from r1855413, httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles.patch)
URL: http://svn.apache.org/viewvc/httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch?p2=httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch&p1=httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles.patch&r1=1855413&r2=1855414&rev=1855414&view=diff
==============================================================================
--- httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles.patch (original)
+++ httpd/httpd/patches/2.4.x/h2-mega-v1.14.1-backport-bugs-and-whistles-v2.patch Wed Mar 13 12:59:50 2019
@@ -1,11 +1,14 @@
Index: CHANGES
===================================================================
---- CHANGES (revision 1855295)
+--- CHANGES (revision 1855412)
+++ CHANGES (working copy)
-@@ -1,6 +1,48 @@
- -*- coding: utf-8 -*-
- Changes with Apache 2.4.39
+@@ -14,12 +14,51 @@
+ credentials could be refused in case of concurrent accesses from
+ different users. PR 63124. [Simon Kappel <simon.kappel axis.com>]
++ *) mod_reqtimeout: Allow to configure (TLS-)handshake timeouts.
++ PR 61310. [Yann Ylavic]
++
+ *) mod_http2: when SSL renegotiation is inhibited and a 403 ErrorDocument is
+ in play, the proper HTTP/2 stream reset did not trigger with H2_ERR_HTTP_1_1_REQUIRED.
+ Fixed. [Michael Kaufmann]
@@ -45,15 +48,18 @@ Index: CHANGES
+ terminate improperly and cause a HTTP/2 PROTOCOL_ERROR.
+ Fixes <https://github.com/icing/mod_h2/issues/167>. [Michael Kaufmann]
+
-+ *) mod_http2: enable re-use of slave connections again. Fixed slave connection
-+ keepalives counter. [Stefan Eissing]
-+
+ *) mod_http2: enable re-use of slave connections again. Fixed slave connection
+ keepalives counter. [Stefan Eissing]
+
+- *) mod_reqtimeout: Allow to configure (TLS-)handshake timeouts.
+- PR 61310. [Yann Ylavic]
+-
*) mod_proxy_wstunnel: Fix websocket proxy over UDS.
PR 62932 <pavel dcmsys.com>
Index: docs/manual/mod/mod_http2.xml
===================================================================
---- docs/manual/mod/mod_http2.xml (revision 1855295)
+--- docs/manual/mod/mod_http2.xml (revision 1855412)
+++ docs/manual/mod/mod_http2.xml (working copy)
@@ -244,6 +244,8 @@
<contextlist>
@@ -141,7 +147,7 @@ Index: docs/manual/mod/mod_http2.xml
</modulesynopsis>
Index: modules/http2/config2.m4
===================================================================
---- modules/http2/config2.m4 (revision 1855295)
+--- modules/http2/config2.m4 (revision 1855412)
+++ modules/http2/config2.m4 (working copy)
@@ -31,7 +31,6 @@
h2_h2.lo dnl
@@ -153,7 +159,7 @@ Index: modules/http2/config2.m4
h2_session.lo dnl
Index: modules/http2/h2.h
===================================================================
---- modules/http2/h2.h (revision 1855295)
+--- modules/http2/h2.h (revision 1855412)
+++ modules/http2/h2.h (working copy)
@@ -48,12 +48,12 @@
#define H2_HEADER_PATH_LEN 5
@@ -180,7 +186,7 @@ Index: modules/http2/h2.h
#endif /* defined(__mod_h2__h2__) */
Index: modules/http2/h2_alt_svc.c
===================================================================
---- modules/http2/h2_alt_svc.c (revision 1855295)
+--- modules/http2/h2_alt_svc.c (revision 1855412)
+++ modules/http2/h2_alt_svc.c (working copy)
@@ -75,7 +75,7 @@
@@ -224,7 +230,7 @@ Index: modules/http2/h2_alt_svc.c
ahost = NULL;
Index: modules/http2/h2_config.c
===================================================================
---- modules/http2/h2_config.c (revision 1855295)
+--- modules/http2/h2_config.c (revision 1855412)
+++ modules/http2/h2_config.c (working copy)
@@ -42,6 +42,55 @@
#define H2_CONFIG_GET(a, b, n) \
@@ -1174,7 +1180,7 @@ Index: modules/http2/h2_config.c
-}
Index: modules/http2/h2_config.h
===================================================================
---- modules/http2/h2_config.h (revision 1855295)
+--- modules/http2/h2_config.h (revision 1855412)
+++ modules/http2/h2_config.h (working copy)
@@ -42,6 +42,8 @@
H2_CONF_PUSH_DIARY_SIZE,
@@ -1268,7 +1274,7 @@ Index: modules/http2/h2_config.h
Index: modules/http2/h2_conn.c
===================================================================
---- modules/http2/h2_conn.c (revision 1855295)
+--- modules/http2/h2_conn.c (revision 1855412)
+++ modules/http2/h2_conn.c (working copy)
@@ -18,6 +18,7 @@
#include <apr_strings.h>
@@ -1346,54 +1352,22 @@ Index: modules/http2/h2_conn.c
if (session) {
apr_status_t status = h2_session_pre_close(session, async_mpm);
return (status == APR_SUCCESS)? DONE : status;
-@@ -305,9 +301,15 @@
- c->notes = apr_table_make(pool, 5);
- c->input_filters = NULL;
- c->output_filters = NULL;
-+ c->keepalives = 0;
-+#if AP_MODULE_MAGIC_AT_LEAST(20180903, 1)
-+ c->filter_conn_ctx = NULL;
-+#endif
+@@ -310,8 +306,10 @@
+ c->filter_conn_ctx = NULL;
+ #endif
c->bucket_alloc = apr_bucket_alloc_create(pool);
+- c->data_in_input_filters = 0;
+- c->data_in_output_filters = 0;
+#if !AP_MODULE_MAGIC_AT_LEAST(20180720, 1)
- c->data_in_input_filters = 0;
- c->data_in_output_filters = 0;
++ c->data_in_input_filters = 0;
++ c->data_in_output_filters = 0;
+#endif
/* prevent mpm_event from making wrong assumptions about this connection,
* like e.g. using its socket for an async read check. */
c->clogging_input_filters = 1;
-@@ -332,16 +334,15 @@
- ap_set_module_config(c->conn_config, mpm, cfg);
- }
-
-- ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, c,
-- "h2_stream(%ld-%d): created slave", master->id, slave_id);
-+ ap_log_cerror(APLOG_MARK, APLOG_TRACE3, 0, c,
-+ "h2_slave(%s): created", c->log_id);
- return c;
- }
-
- void h2_slave_destroy(conn_rec *slave)
- {
-- ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, slave,
-- "h2_stream(%s): destroy slave",
-- apr_table_get(slave->notes, H2_TASK_ID_NOTE));
-+ ap_log_cerror(APLOG_MARK, APLOG_TRACE3, 0, slave,
-+ "h2_slave(%s): destroy", slave->log_id);
- slave->sbh = NULL;
- apr_pool_destroy(slave->pool);
- }
-@@ -365,6 +366,7 @@
- slave->keepalive = AP_CONN_CLOSE;
- return ap_run_pre_connection(slave, csd);
- }
-+ ap_assert(slave->output_filters);
- return APR_SUCCESS;
- }
-
Index: modules/http2/h2_conn.h
===================================================================
---- modules/http2/h2_conn.h (revision 1855295)
+--- modules/http2/h2_conn.h (revision 1855412)
+++ modules/http2/h2_conn.h (working copy)
@@ -23,11 +23,11 @@
/**
@@ -1424,7 +1398,7 @@ Index: modules/http2/h2_conn.h
* The connection is about to close. If we have not send a GOAWAY
Index: modules/http2/h2_conn_io.c
===================================================================
---- modules/http2/h2_conn_io.c (revision 1855295)
+--- modules/http2/h2_conn_io.c (revision 1855412)
+++ modules/http2/h2_conn_io.c (working copy)
@@ -40,12 +40,17 @@
* ~= 1300 bytes */
@@ -1477,7 +1451,7 @@ Index: modules/http2/h2_conn_io.c
WRITE_SIZE_INITIAL : WRITE_SIZE_MAX);
Index: modules/http2/h2_conn_io.h
===================================================================
---- modules/http2/h2_conn_io.h (revision 1855295)
+--- modules/http2/h2_conn_io.h (revision 1855412)
+++ modules/http2/h2_conn_io.h (working copy)
@@ -48,8 +48,7 @@
apr_size_t slen;
@@ -1491,7 +1465,7 @@ Index: modules/http2/h2_conn_io.h
* Append data to the buffered output.
Index: modules/http2/h2_ctx.c
===================================================================
---- modules/http2/h2_ctx.c (revision 1855295)
+--- modules/http2/h2_ctx.c (revision 1855412)
+++ modules/http2/h2_ctx.c (working copy)
@@ -29,8 +29,8 @@
{
@@ -1556,7 +1530,7 @@ Index: modules/http2/h2_ctx.c
-}
Index: modules/http2/h2_ctx.h
===================================================================
---- modules/http2/h2_ctx.h (revision 1855295)
+--- modules/http2/h2_ctx.h (revision 1855412)
+++ modules/http2/h2_ctx.h (working copy)
@@ -56,12 +56,11 @@
*/
@@ -1589,7 +1563,7 @@ Index: modules/http2/h2_ctx.h
#endif /* defined(__mod_h2__h2_ctx__) */
Index: modules/http2/h2_filter.c
===================================================================
---- modules/http2/h2_filter.c (revision 1855295)
+--- modules/http2/h2_filter.c (revision 1855412)
+++ modules/http2/h2_filter.c (working copy)
@@ -54,6 +54,7 @@
const char *data;
@@ -1705,7 +1679,7 @@ Index: modules/http2/h2_filter.c
if ((status = ap_discard_request_body(r)) != OK) {
Index: modules/http2/h2_from_h1.c
===================================================================
---- modules/http2/h2_from_h1.c (revision 1855295)
+--- modules/http2/h2_from_h1.c (revision 1855412)
+++ modules/http2/h2_from_h1.c (working copy)
@@ -594,9 +594,9 @@
}
@@ -1736,7 +1710,7 @@ Index: modules/http2/h2_from_h1.c
}
Index: modules/http2/h2_h2.c
===================================================================
---- modules/http2/h2_h2.c (revision 1855295)
+--- modules/http2/h2_h2.c (revision 1855412)
+++ modules/http2/h2_h2.c (working copy)
@@ -463,12 +463,11 @@
return opt_ssl_is_https && opt_ssl_is_https(c);
@@ -1931,7 +1905,7 @@ Index: modules/http2/h2_h2.c
"h2_slave_out(%s): copy_files on", task->id);
Index: modules/http2/h2_h2.h
===================================================================
---- modules/http2/h2_h2.h (revision 1855295)
+--- modules/http2/h2_h2.h (revision 1855412)
+++ modules/http2/h2_h2.h (working copy)
@@ -57,23 +57,15 @@
* the handshake is still ongoing.
@@ -1963,7 +1937,7 @@ Index: modules/http2/h2_h2.h
#endif /* defined(__mod_h2__h2_h2__) */
Index: modules/http2/h2_headers.c
===================================================================
---- modules/http2/h2_headers.c (revision 1855295)
+--- modules/http2/h2_headers.c (revision 1855412)
+++ modules/http2/h2_headers.c (working copy)
@@ -28,6 +28,7 @@
@@ -2016,7 +1990,7 @@ Index: modules/http2/h2_headers.c
Index: modules/http2/h2_mplx.c
===================================================================
---- modules/http2/h2_mplx.c (revision 1855295)
+--- modules/http2/h2_mplx.c (revision 1855412)
+++ modules/http2/h2_mplx.c (working copy)
@@ -40,7 +40,6 @@
#include "h2_ctx.h"
@@ -2104,16 +2078,7 @@ Index: modules/http2/h2_mplx.c
}
return m;
}
-@@ -327,7 +303,7 @@
- && !task->rst_error);
- }
-
-- if (reuse_slave && slave->keepalive == AP_CONN_KEEPALIVE) {
-+ if (reuse_slave) {
- h2_beam_log(task->output.beam, m->c, APLOG_DEBUG,
- APLOGNO(03385) "h2_task_destroy, reuse slave");
- h2_task_destroy(task);
-@@ -393,10 +369,10 @@
+@@ -394,10 +370,10 @@
if (task) {
ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, m->c, /* NO APLOGNO */
H2_STRM_MSG(stream, "->03198: %s %s %s"
@@ -2126,19 +2091,16 @@ Index: modules/http2/h2_mplx.c
}
else {
ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, m->c, /* NO APLOGNO */
-@@ -435,8 +411,10 @@
+@@ -436,7 +412,7 @@
void h2_mplx_release_and_join(h2_mplx *m, apr_thread_cond_t *wait)
{
apr_status_t status;
- int i, wait_secs = 60;
+ int i, wait_secs = 60, old_aborted;
-+ ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
-+ "h2_mplx(%ld): start release", m->id);
- /* How to shut down a h2 connection:
- * 0. abort and tell the workers that no more tasks will come from us */
- m->aborted = 1;
-@@ -444,6 +422,12 @@
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
+ "h2_mplx(%ld): start release", m->id);
+@@ -447,6 +423,12 @@
H2_MPLX_ENTER_ALWAYS(m);
@@ -2151,7 +2113,7 @@ Index: modules/http2/h2_mplx.c
/* How to shut down a h2 connection:
* 1. cancel all streams still active */
while (!h2_ihash_iter(m->streams, stream_cancel_iter, m)) {
-@@ -450,9 +434,7 @@
+@@ -453,9 +435,7 @@
/* until empty */
}
@@ -2162,7 +2124,7 @@ Index: modules/http2/h2_mplx.c
ap_assert(h2_ihash_empty(m->streams));
ap_assert(h2_iq_empty(m->q));
-@@ -476,10 +458,6 @@
+@@ -479,10 +459,6 @@
ap_assert(m->tasks_active == 0);
m->join_wait = NULL;
@@ -2173,7 +2135,7 @@ Index: modules/http2/h2_mplx.c
/* 4. With all workers done, all streams should be in spurge */
if (!h2_ihash_empty(m->shold)) {
ap_log_cerror(APLOG_MARK, APLOG_WARNING, 0, m->c, APLOGNO(03516)
-@@ -488,6 +466,7 @@
+@@ -491,6 +467,7 @@
h2_ihash_iter(m->shold, unexpected_stream_iter, m);
}
@@ -2181,7 +2143,7 @@ Index: modules/http2/h2_mplx.c
H2_MPLX_LEAVE(m);
ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, m->c,
-@@ -784,47 +763,14 @@
+@@ -787,47 +764,14 @@
return rv;
}
@@ -2230,7 +2192,7 @@ Index: modules/http2/h2_mplx.c
task->worker_done = 1;
task->done_at = apr_time_now();
ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
-@@ -846,18 +792,24 @@
+@@ -849,18 +793,24 @@
m->id, m->limit_active);
}
}
@@ -2256,7 +2218,7 @@ Index: modules/http2/h2_mplx.c
ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
H2_STRM_MSG(stream, "task_done, stream open"));
if (stream->input) {
-@@ -870,6 +822,7 @@
+@@ -873,6 +823,7 @@
}
else if ((stream = h2_ihash_get(m->shold, task->stream_id)) != NULL) {
/* stream is done, was just waiting for this. */
@@ -2264,7 +2226,7 @@ Index: modules/http2/h2_mplx.c
ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
H2_STRM_MSG(stream, "task_done, in hold"));
if (stream->input) {
-@@ -894,7 +847,7 @@
+@@ -897,7 +848,7 @@
{
H2_MPLX_ENTER_ALWAYS(m);
@@ -2273,17 +2235,7 @@ Index: modules/http2/h2_mplx.c
--m->tasks_active;
if (m->join_wait) {
-@@ -977,6 +930,9 @@
- */
- n = (m->tasks_active - m->limit_active - (int)h2_ihash_count(m->sredo));
- while (n > 0 && (stream = get_latest_repeatable_unsubmitted_stream(m))) {
-+ ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, m->c,
-+ "h2_mplx(%s): unschedule, resetting task for redo later",
-+ stream->task->id);
- h2_task_rst(stream->task, H2_ERR_CANCEL);
- h2_ihash_add(m->sredo, stream);
- --n;
-@@ -1085,142 +1041,6 @@
+@@ -1091,142 +1042,6 @@
}
/*******************************************************************************
@@ -2428,7 +2380,7 @@ Index: modules/http2/h2_mplx.c
Index: modules/http2/h2_mplx.h
===================================================================
---- modules/http2/h2_mplx.h (revision 1855295)
+--- modules/http2/h2_mplx.h (revision 1855412)
+++ modules/http2/h2_mplx.h (working copy)
@@ -47,8 +47,6 @@
struct apr_thread_cond_t;
@@ -2497,7 +2449,7 @@ Index: modules/http2/h2_mplx.h
#endif /* defined(__mod_h2__h2_mplx__) */
Index: modules/http2/h2_ngn_shed.c
===================================================================
---- modules/http2/h2_ngn_shed.c (revision 1855295)
+--- modules/http2/h2_ngn_shed.c (revision 1855412)
+++ modules/http2/h2_ngn_shed.c (working copy)
@@ -1,392 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -2894,7 +2846,7 @@ Index: modules/http2/h2_ngn_shed.c
-
Index: modules/http2/h2_ngn_shed.h
===================================================================
---- modules/http2/h2_ngn_shed.h (revision 1855295)
+--- modules/http2/h2_ngn_shed.h (revision 1855412)
+++ modules/http2/h2_ngn_shed.h (working copy)
@@ -1,79 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -2978,7 +2930,7 @@ Index: modules/http2/h2_ngn_shed.h
-#endif /* h2_req_shed_h */
Index: modules/http2/h2_proxy_session.c
===================================================================
---- modules/http2/h2_proxy_session.c (revision 1855295)
+--- modules/http2/h2_proxy_session.c (revision 1855412)
+++ modules/http2/h2_proxy_session.c (working copy)
@@ -429,12 +429,6 @@
stream_id, NGHTTP2_STREAM_CLOSED);
@@ -3064,7 +3016,7 @@ Index: modules/http2/h2_proxy_session.c
-
Index: modules/http2/h2_proxy_session.h
===================================================================
---- modules/http2/h2_proxy_session.h (revision 1855295)
+--- modules/http2/h2_proxy_session.h (revision 1855412)
+++ modules/http2/h2_proxy_session.h (working copy)
@@ -120,9 +120,6 @@
@@ -3078,7 +3030,7 @@ Index: modules/http2/h2_proxy_session.h
#endif /* h2_proxy_session_h */
Index: modules/http2/h2_request.c
===================================================================
---- modules/http2/h2_request.c (revision 1855295)
+--- modules/http2/h2_request.c (revision 1855412)
+++ modules/http2/h2_request.c (working copy)
@@ -17,6 +17,7 @@
#include <assert.h>
@@ -3125,7 +3077,7 @@ Index: modules/http2/h2_request.c
r->trailers_in = apr_table_make(r->pool, 5);
r->subprocess_env = apr_table_make(r->pool, 25);
r->headers_out = apr_table_make(r->pool, 12);
-@@ -262,11 +260,29 @@
+@@ -262,6 +260,24 @@
r->useragent_addr = c->client_addr;
r->useragent_ip = c->client_ip;
@@ -3150,12 +3102,6 @@ Index: modules/http2/h2_request.c
ap_run_pre_read_request(r, c);
/* Time to populate r with the data we have. */
- r->request_time = req->request_time;
-- r->method = apr_pstrdup(r->pool, req->method);
-+ r->method = req->method;
- /* Provide quick information about the request method as soon as known */
- r->method_number = ap_method_number_of(r->method);
- if (r->method_number == M_GET && r->method[0] == 'H') {
@@ -337,3 +353,4 @@
}
@@ -3163,7 +3109,7 @@ Index: modules/http2/h2_request.c
+
Index: modules/http2/h2_session.c
===================================================================
---- modules/http2/h2_session.c (revision 1855295)
+--- modules/http2/h2_session.c (revision 1855412)
+++ modules/http2/h2_session.c (working copy)
@@ -495,9 +495,7 @@
return NGHTTP2_ERR_WOULDBLOCK;
@@ -3411,7 +3357,7 @@ Index: modules/http2/h2_session.c
h2_session_shutdown(session,
Index: modules/http2/h2_session.h
===================================================================
---- modules/http2/h2_session.h (revision 1855295)
+--- modules/http2/h2_session.h (revision 1855412)
+++ modules/http2/h2_session.h (working copy)
@@ -80,12 +80,13 @@
request_rec *r; /* the request that started this in case
@@ -3460,7 +3406,7 @@ Index: modules/http2/h2_session.h
Index: modules/http2/h2_stream.c
===================================================================
---- modules/http2/h2_stream.c (revision 1855295)
+--- modules/http2/h2_stream.c (revision 1855412)
+++ modules/http2/h2_stream.c (working copy)
@@ -365,9 +365,8 @@
static void set_policy_for(h2_stream *stream, h2_request *r)
@@ -3494,7 +3440,7 @@ Index: modules/http2/h2_stream.c
return NULL;
Index: modules/http2/h2_switch.c
===================================================================
---- modules/http2/h2_switch.c (revision 1855295)
+--- modules/http2/h2_switch.c (revision 1855412)
+++ modules/http2/h2_switch.c (working copy)
@@ -55,7 +55,6 @@
int is_tls = h2_h2_is_tls(c);
@@ -3553,7 +3499,7 @@ Index: modules/http2/h2_switch.c
}
Index: modules/http2/h2_task.c
===================================================================
---- modules/http2/h2_task.c (revision 1855295)
+--- modules/http2/h2_task.c (revision 1855412)
+++ modules/http2/h2_task.c (working copy)
@@ -97,7 +97,7 @@
apr_brigade_length(bb, 0, &written);
@@ -3602,21 +3548,7 @@ Index: modules/http2/h2_task.c
ap_assert(task);
if (trace1) {
-@@ -310,11 +293,9 @@
- }
- }
-
-- /* Nothing there, no more data to get. Return APR_EAGAIN on
-- * speculative reads, this is ap_check_pipeline()'s trick to
-- * see if the connection needs closing. */
-+ /* Nothing there, no more data to get. Return. */
- if (status == APR_EOF && APR_BRIGADE_EMPTY(task->input.bb)) {
-- return (mode == AP_MODE_SPECULATIVE)? APR_EAGAIN : APR_EOF;
-+ return status;
- }
-
- if (trace1) {
-@@ -379,7 +360,7 @@
+@@ -377,7 +360,7 @@
static apr_status_t h2_filter_slave_output(ap_filter_t* filter,
apr_bucket_brigade* brigade)
{
@@ -3625,7 +3557,7 @@ Index: modules/http2/h2_task.c
apr_status_t status;
ap_assert(task);
-@@ -392,7 +373,7 @@
+@@ -390,7 +373,7 @@
static apr_status_t h2_filter_parse_h1(ap_filter_t* f, apr_bucket_brigade* bb)
{
@@ -3634,19 +3566,16 @@ Index: modules/http2/h2_task.c
apr_status_t status;
ap_assert(task);
-@@ -502,9 +483,9 @@
+@@ -500,7 +483,7 @@
ctx = h2_ctx_get(c, 0);
(void)arg;
- if (h2_ctx_is_task(ctx)) {
+ if (ctx->task) {
ap_log_cerror(APLOG_MARK, APLOG_TRACE2, 0, c,
-- "h2_h2, pre_connection, found stream task");
-+ "h2_slave(%s), pre_connection, adding filters", c->log_id);
+ "h2_slave(%s), pre_connection, adding filters", c->log_id);
ap_add_input_filter("H2_SLAVE_IN", NULL, NULL, c);
- ap_add_output_filter("H2_PARSE_H1", NULL, NULL, c);
- ap_add_output_filter("H2_SLAVE_OUT", NULL, NULL, c);
-@@ -525,6 +506,7 @@
+@@ -523,6 +506,7 @@
ap_assert(req);
apr_pool_create(&pool, slave->pool);
@@ -3654,15 +3583,7 @@ Index: modules/http2/h2_task.c
task = apr_pcalloc(pool, sizeof(h2_task));
if (task == NULL) {
return NULL;
-@@ -599,7 +581,6 @@
- slave_id = worker_id;
- }
- task->c->id = (c->master->id << free_bits)^slave_id;
-- c->keepalive = AP_CONN_KEEPALIVE;
- }
-
- h2_beam_create(&task->output.beam, c->pool, task->stream_id, "output",
-@@ -634,18 +615,9 @@
+@@ -630,18 +614,9 @@
task->c->current_thread = thread;
ap_run_process_connection(c);
@@ -3684,7 +3605,7 @@ Index: modules/http2/h2_task.c
}
static apr_status_t h2_task_process_request(h2_task *task, conn_rec *c)
-@@ -683,14 +655,8 @@
+@@ -679,14 +654,8 @@
ap_process_request(r);
@@ -3701,7 +3622,7 @@ Index: modules/http2/h2_task.c
/* After the call to ap_process_request, the
* request pool may have been deleted. We set
-@@ -725,7 +691,7 @@
+@@ -721,7 +690,7 @@
}
ctx = h2_ctx_get(c, 0);
@@ -3710,7 +3631,7 @@ Index: modules/http2/h2_task.c
if (!ctx->task->request->serialize) {
ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, c,
"h2_h2, processing request directly");
-@@ -742,28 +708,3 @@
+@@ -738,28 +707,3 @@
return DECLINED;
}
@@ -3741,7 +3662,7 @@ Index: modules/http2/h2_task.c
-}
Index: modules/http2/h2_task.h
===================================================================
---- modules/http2/h2_task.h (revision 1855295)
+--- modules/http2/h2_task.h (revision 1855412)
+++ modules/http2/h2_task.h (working copy)
@@ -42,7 +42,6 @@
struct h2_conn;
@@ -3783,7 +3704,7 @@ Index: modules/http2/h2_task.h
#endif /* defined(__mod_h2__h2_task__) */
Index: modules/http2/h2_version.h
===================================================================
---- modules/http2/h2_version.h (revision 1855295)
+--- modules/http2/h2_version.h (revision 1855412)
+++ modules/http2/h2_version.h (working copy)
@@ -27,7 +27,7 @@
* @macro
@@ -3805,7 +3726,7 @@ Index: modules/http2/h2_version.h
#endif /* mod_h2_h2_version_h */
Index: modules/http2/mod_http2.c
===================================================================
---- modules/http2/mod_http2.c (revision 1855295)
+--- modules/http2/mod_http2.c (revision 1855412)
+++ modules/http2/mod_http2.c (working copy)
@@ -172,27 +172,6 @@
conn_rec *, request_rec *, char *name);
@@ -3921,7 +3842,7 @@ Index: modules/http2/mod_http2.c
for (i = 0; ctx && i < H2_ALEN(H2_VARS); ++i) {
Index: modules/http2/mod_http2.h
===================================================================
---- modules/http2/mod_http2.h (revision 1855295)
+--- modules/http2/mod_http2.h (revision 1855412)
+++ modules/http2/mod_http2.h (working copy)
@@ -30,22 +30,20 @@
@@ -4001,7 +3922,7 @@ Index: modules/http2/mod_http2.h
#endif
Index: modules/http2/mod_proxy_http2.c
===================================================================
---- modules/http2/mod_proxy_http2.c (revision 1855295)
+--- modules/http2/mod_proxy_http2.c (revision 1855412)
+++ modules/http2/mod_proxy_http2.c (working copy)
@@ -16,6 +16,7 @@
@@ -4588,11 +4509,11 @@ Index: modules/http2/mod_proxy_http2.c
APLOGNO(03377) "leaving handler");
Index: .
===================================================================
---- . (revision 1855295)
+--- . (revision 1855412)
+++ . (working copy)
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
## -0,0 +0,1 ##
- Merged /httpd/httpd/trunk:r1855295
+ Merged /httpd/httpd/trunk:r1855411