You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rj...@apache.org on 2012/08/17 16:54:19 UTC
svn commit: r1374297 - in /httpd/httpd/branches/2.4.x: ./ STATUS
modules/proxy/mod_proxy_ajp.c modules/proxy/mod_proxy_http.c
Author: rjung
Date: Fri Aug 17 14:54:18 2012
New Revision: 1374297
URL: http://svn.apache.org/viewvc?rev=1374297&view=rev
Log:
mod_proxy_ajp/mod_proxy_http: Optimize bit field
operations in mod_proxy.
Modified:
httpd/httpd/branches/2.4.x/ (props changed)
httpd/httpd/branches/2.4.x/STATUS
httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_ajp.c
httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_http.c
Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
Merged /httpd/httpd/trunk:r1373955
Modified: httpd/httpd/branches/2.4.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1374297&r1=1374296&r2=1374297&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/STATUS (original)
+++ httpd/httpd/branches/2.4.x/STATUS Fri Aug 17 14:54:18 2012
@@ -88,11 +88,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * mod_proxy_ajp/mod_proxy_http: Optimize bit field operations in mod_proxy.
- trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1373955
- 2.4.x patch: trunk patch works.
- +1: rjung, jim, trawick
-
* mod_proxy_balancer: Remove wrong error code parameter from log message.
trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1374157
2.4.x patch: trunk patch works.
Modified: httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_ajp.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_ajp.c?rev=1374297&r1=1374296&r2=1374297&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_ajp.c (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_ajp.c Fri Aug 17 14:54:18 2012
@@ -207,7 +207,7 @@ static int ap_proxy_ajp_request(apr_pool
/* send request headers */
status = ajp_send_header(conn->sock, r, maxsize, uri);
if (status != APR_SUCCESS) {
- conn->close++;
+ conn->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00868)
"request failed to %pI (%s)",
conn->worker->cp->addr,
@@ -234,7 +234,7 @@ static int ap_proxy_ajp_request(apr_pool
status = ajp_alloc_data_msg(r->pool, &buff, &bufsiz, &msg);
if (status != APR_SUCCESS) {
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00869)
"ajp_alloc_data_msg failed");
return HTTP_INTERNAL_SERVER_ERROR;
@@ -255,7 +255,7 @@ static int ap_proxy_ajp_request(apr_pool
if (status != APR_SUCCESS) {
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00871)
"ap_get_brigade failed");
apr_brigade_destroy(input_brigade);
@@ -275,7 +275,7 @@ static int ap_proxy_ajp_request(apr_pool
status = apr_brigade_flatten(input_brigade, buff, &bufsiz);
if (status != APR_SUCCESS) {
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
apr_brigade_destroy(input_brigade);
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00874)
"apr_brigade_flatten");
@@ -290,7 +290,7 @@ static int ap_proxy_ajp_request(apr_pool
ajp_msg_log(r, msg, "First ajp_send_data_msg: ajp_ilink_send packet dump");
if (status != APR_SUCCESS) {
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
apr_brigade_destroy(input_brigade);
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00876)
"send failed to %pI (%s)",
@@ -319,7 +319,7 @@ static int ap_proxy_ajp_request(apr_pool
* for later resusage by the next request again.
* Close it to clean things up.
*/
- conn->close++;
+ conn->close = 1;
return HTTP_BAD_REQUEST;
}
}
@@ -330,7 +330,7 @@ static int ap_proxy_ajp_request(apr_pool
(ajp_msg_t **)&(conn->data));
if (status != APR_SUCCESS) {
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
apr_brigade_destroy(input_brigade);
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00878)
"read response failed from %pI (%s)",
@@ -559,7 +559,7 @@ static int ap_proxy_ajp_request(apr_pool
* But: Close this connection to the backend.
*/
if (r->connection->aborted) {
- conn->close++;
+ conn->close = 1;
output_failed = 0;
result = CMD_AJP13_END_RESPONSE;
request_ended = 1;
@@ -597,7 +597,7 @@ static int ap_proxy_ajp_request(apr_pool
"Processing of request failed backend: %i, "
"output: %i", backend_failed, output_failed);
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
/* Return DONE to avoid error messages being added to the stream */
if (data_sent) {
rv = DONE;
@@ -607,7 +607,7 @@ static int ap_proxy_ajp_request(apr_pool
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00891)
"Processing of request didn't terminate cleanly");
/* We had a failure: Close connection to backend */
- conn->close++;
+ conn->close = 1;
backend_failed = 1;
/* Return DONE to avoid error messages being added to the stream */
if (data_sent) {
@@ -616,7 +616,7 @@ static int ap_proxy_ajp_request(apr_pool
}
else if (!conn_reuse) {
/* Our backend signalled connection close */
- conn->close++;
+ conn->close = 1;
}
else {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00892)
@@ -679,7 +679,7 @@ static int ap_proxy_ajp_request(apr_pool
apr_brigade_destroy(output_brigade);
if (apr_table_get(r->subprocess_env, "proxy-nokeepalive")) {
- conn->close++;
+ conn->close = 1;
}
return rv;
@@ -758,7 +758,7 @@ static int proxy_ajp_handler(request_rec
* TCP connection gets closed and try it once again.
*/
if (status != APR_SUCCESS) {
- backend->close++;
+ backend->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00897)
"cping/cpong failed to %pI (%s)",
worker->cp->addr, worker->s->hostname);
Modified: httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_http.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_http.c?rev=1374297&r1=1374296&r2=1374297&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_http.c (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_http.c Fri Aug 17 14:54:18 2012
@@ -795,14 +795,14 @@ int ap_proxy_http_request(apr_pool_t *p,
}
buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.0" CRLF, NULL);
force10 = 1;
- p_conn->close++;
+ p_conn->close = 1;
} else {
buf = apr_pstrcat(p, r->method, " ", url, " HTTP/1.1" CRLF, NULL);
force10 = 0;
}
if (apr_table_get(r->subprocess_env, "proxy-nokeepalive")) {
origin->keepalive = AP_CONN_CLOSE;
- p_conn->close++;
+ p_conn->close = 1;
}
ap_xlate_proto_to_ascii(buf, strlen(buf));
e = apr_bucket_pool_create(buf, strlen(buf), p, c->bucket_alloc);
@@ -1019,7 +1019,7 @@ int ap_proxy_http_request(apr_pool_t *p,
*/
if (!r->kept_body && r->main) {
/* XXX: Why DON'T sub-requests use keepalives? */
- p_conn->close++;
+ p_conn->close = 1;
if (old_cl_val) {
old_cl_val = NULL;
apr_table_unset(r->headers_in, "Content-Length");
@@ -1056,7 +1056,7 @@ int ap_proxy_http_request(apr_pool_t *p,
apr_table_unset(r->headers_in, "Content-Length");
old_cl_val = NULL;
origin->keepalive = AP_CONN_CLOSE;
- p_conn->close++;
+ p_conn->close = 1;
}
/* Prefetch MAX_MEM_SPOOL bytes
@@ -1705,7 +1705,7 @@ apr_status_t ap_proxy_http_process_respo
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(01106)
"bad HTTP/%d.%d header returned by %s (%s)",
major, minor, r->uri, r->method);
- backend->close += 1;
+ backend->close = 1;
/*
* ap_send_error relies on a headers_out to be present. we
* are in a bad position here.. so force everything we send out
@@ -1746,7 +1746,7 @@ apr_status_t ap_proxy_http_process_respo
"server %s:%d returned Transfer-Encoding"
" and Content-Length",
backend->hostname, backend->port);
- backend->close += 1;
+ backend->close = 1;
}
/*
@@ -1755,8 +1755,9 @@ apr_status_t ap_proxy_http_process_respo
*/
te = apr_table_get(r->headers_out, "Transfer-Encoding");
/* strip connection listed hop-by-hop headers from response */
- backend->close += ap_find_token(p,
- apr_table_get(r->headers_out, "Connection"), "close");
+ if (ap_find_token(p, apr_table_get(r->headers_out, "Connection"),
+ "close"))
+ backend->close = 1;
ap_proxy_clear_connection(p, r->headers_out);
if ((buf = apr_table_get(r->headers_out, "Content-Type"))) {
ap_set_content_type(r, apr_pstrdup(p, buf));
@@ -1801,7 +1802,7 @@ apr_status_t ap_proxy_http_process_respo
/* cancel keepalive if HTTP/1.0 or less */
if ((major < 1) || (minor < 1)) {
- backend->close += 1;
+ backend->close = 1;
origin->keepalive = AP_CONN_CLOSE;
}
} else {
@@ -1809,7 +1810,7 @@ apr_status_t ap_proxy_http_process_respo
backasswards = 1;
r->status = 200;
r->status_line = "200 OK";
- backend->close += 1;
+ backend->close = 1;
}
if (ap_is_HTTP_INFO(proxy_status)) {