diff options
author | Stefan Eissing <icing@apache.org> | 2016-03-09 11:51:25 +0000 |
---|---|---|
committer | Stefan Eissing <icing@apache.org> | 2016-03-09 11:51:25 +0000 |
commit | 28d50b0579d29e127bc29e7c268ecaa83956bb51 (patch) | |
tree | f506e7aa30e14e33bc84d45db903216737f8a5d2 /modules/http2/mod_proxy_http2.c | |
parent | 9abfad57050835dcabca140aab678a4ee79b8054 (diff) | |
download | httpd-28d50b0579d29e127bc29e7c268ecaa83956bb51.tar.gz |
mod_proxy_http2: single engine per type per master connection, removing some race conditions on engine exit, mod_http2: better debug logging by tagging slave connection with task id
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1734221 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http2/mod_proxy_http2.c')
-rw-r--r-- | modules/http2/mod_proxy_http2.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/modules/http2/mod_proxy_http2.c b/modules/http2/mod_proxy_http2.c index 0a752a8410..ab1bb09d2e 100644 --- a/modules/http2/mod_proxy_http2.c +++ b/modules/http2/mod_proxy_http2.c @@ -305,7 +305,10 @@ static apr_status_t proxy_engine_run(h2_proxy_ctx *ctx) { if (status == APR_SUCCESS) { apr_status_t s2; /* ongoing processing, call again */ - ctx->capacity = H2MAX(100, session->remote_max_concurrent); + if (session->remote_max_concurrent > 0 + && session->remote_max_concurrent != ctx->capacity) { + ctx->capacity = session->remote_max_concurrent; + } s2 = next_request(ctx, 0); if (s2 == APR_ECONNABORTED) { /* master connection gone */ @@ -528,10 +531,12 @@ run_session: cleanup: if (ctx->engine && next_request(ctx, 1) == APR_SUCCESS) { /* Still more to do, tear down old conn and start over */ - ctx->p_conn->close = 1; - proxy_run_detach_backend(r, ctx->p_conn); - ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); - ctx->p_conn = NULL; + if (ctx->p_conn) { + ctx->p_conn->close = 1; + proxy_run_detach_backend(r, ctx->p_conn); + ap_proxy_release_connection(ctx->proxy_func, ctx->p_conn, ctx->server); + ctx->p_conn = NULL; + } goto run_connect; } |