summaryrefslogtreecommitdiff
path: root/modules/http2/mod_proxy_http2.c
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2017-03-06 15:45:05 +0000
committerStefan Eissing <icing@apache.org>2017-03-06 15:45:05 +0000
commiteebe5fa1c06368daa8a4aaa40a16fc592a40004f (patch)
tree153ccb9af8170ee1a41231d4f6c937d56ca121b7 /modules/http2/mod_proxy_http2.c
parentd49edbb39bec92b58eae1df229a7ca9c4a45fc69 (diff)
downloadhttpd-eebe5fa1c06368daa8a4aaa40a16fc592a40004f.tar.gz
On the trunk:
mod_proxy_http2: fixed retry behaviour when frontend connection uses http/1.1. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1785672 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http2/mod_proxy_http2.c')
-rw-r--r--modules/http2/mod_proxy_http2.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/modules/http2/mod_proxy_http2.c b/modules/http2/mod_proxy_http2.c
index 437fecc1c5..f29f8c3124 100644
--- a/modules/http2/mod_proxy_http2.c
+++ b/modules/http2/mod_proxy_http2.c
@@ -276,6 +276,9 @@ static void request_done(h2_proxy_session *session, request_rec *r,
h2_proxy_ctx *ctx = session->user_data;
const char *task_id = apr_table_get(r->connection->notes, H2_TASK_ID_NOTE);
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE1, status, r->connection,
+ "h2_proxy_session(%s): request done %s, touched=%d",
+ ctx->engine_id, task_id, touched);
if (status != APR_SUCCESS) {
if (!touched) {
/* untouched request, need rescheduling */
@@ -289,6 +292,12 @@ static void request_done(h2_proxy_session *session, request_rec *r,
return;
}
}
+ else if (!ctx->next) {
+ ap_log_cerror(APLOG_MARK, APLOG_TRACE1, status, r->connection,
+ "h2_proxy_session(%s): retry untouched request",
+ ctx->engine_id);
+ ctx->next = r;
+ }
}
else {
const char *uri;
@@ -606,7 +615,7 @@ run_session:
}
cleanup:
- if (!reconnected && ctx->engine && next_request(ctx, 1) == APR_SUCCESS) {
+ if (!reconnected && next_request(ctx, 1) == APR_SUCCESS) {
/* Still more to do, tear down old conn and start over */
if (ctx->p_conn) {
ctx->p_conn->close = 1;