diff options
author | Stefan Eissing <icing@apache.org> | 2017-03-06 15:45:05 +0000 |
---|---|---|
committer | Stefan Eissing <icing@apache.org> | 2017-03-06 15:45:05 +0000 |
commit | eebe5fa1c06368daa8a4aaa40a16fc592a40004f (patch) | |
tree | 153ccb9af8170ee1a41231d4f6c937d56ca121b7 /modules/http2/mod_proxy_http2.c | |
parent | d49edbb39bec92b58eae1df229a7ca9c4a45fc69 (diff) | |
download | httpd-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.c | 11 |
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; |