jfclere 2004/08/01 10:56:32 Modified: ajp/proxy proxy_ajp.c Log: Close only when needed. Revision Changes Path 1.6 +13 -11 jakarta-tomcat-connectors/ajp/proxy/proxy_ajp.c Index: proxy_ajp.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/ajp/proxy/proxy_ajp.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- proxy_ajp.c 1 Aug 2004 15:05:01 -0000 1.5 +++ proxy_ajp.c 1 Aug 2004 17:56:32 -0000 1.6 @@ -13,7 +13,7 @@ * limitations under the License. */ -/* HTTP routines for Apache proxy */ +/* AJP routines for Apache proxy */ #include "mod_proxy.h" #include "ajp.h" @@ -34,7 +34,7 @@ void *data; /* To store ajp data */ } proxy_ajp_conn_t; -static apr_status_t ap_proxy_http_cleanup(request_rec *r, +static apr_status_t ap_proxy_ajp_cleanup(request_rec *r, proxy_ajp_conn_t *p_conn, proxy_conn_rec *backend); @@ -278,7 +278,7 @@ * For now we do nothing, ie we get DNS round robin. * XXX FIXME */ - failed = ap_proxy_connect_to_backend(&p_conn->sock, "HTTP", + failed = ap_proxy_connect_to_backend(&p_conn->sock, "AJP", p_conn->addr, p_conn->name, conf, r->server, c->pool); @@ -513,19 +513,18 @@ } static -apr_status_t ap_proxy_http_cleanup(request_rec *r, proxy_ajp_conn_t *p_conn, +apr_status_t ap_proxy_ajp_cleanup(request_rec *r, proxy_ajp_conn_t *p_conn, proxy_conn_rec *backend) { - /* If there are no KeepAlives, or if the connection has been signalled + /* If the connection has been signalled * to close, close the socket and clean up */ /* if the connection is < HTTP/1.1, or Connection: close, * we close the socket, otherwise we leave it open for KeepAlive support */ - if (p_conn->close || (r->proto_num < HTTP_VERSION(1,1))) { - ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, - "ap_proxy_http_cleanup closing %d %d %d %s", - p_conn->sock, p_conn->close, r->proto_num, apr_table_get(r->headers_out, "Connection")); + if (p_conn->close) { + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, + "ap_proxy_ajp_cleanup closing"); if (p_conn->sock) { apr_socket_close(p_conn->sock); p_conn->sock = NULL; @@ -641,6 +640,8 @@ status = ap_proxy_ajp_request(p, r, p_conn, origin, conf, uri, url, server_portstr); if ( status != OK ) { + p_conn->close++; + ap_proxy_ajp_cleanup(r, p_conn, backend); return status; } @@ -649,12 +650,13 @@ server_portstr); if ( status != OK ) { /* clean up even if there is an error */ - ap_proxy_http_cleanup(r, p_conn, backend); + p_conn->close++; + ap_proxy_ajp_cleanup(r, p_conn, backend); return status; } /* Step Five: Clean Up */ - status = ap_proxy_http_cleanup(r, p_conn, backend); + status = ap_proxy_ajp_cleanup(r, p_conn, backend); if ( status != OK ) { return status; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]