mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
No need to allocate hostname on each request for
persistent connections. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105109 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -1569,17 +1569,20 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
|
|||||||
*/
|
*/
|
||||||
/* are we connecting directly, or via a proxy? */
|
/* are we connecting directly, or via a proxy? */
|
||||||
if (proxyname) {
|
if (proxyname) {
|
||||||
conn->hostname = apr_pstrdup(conn->pool, proxyname);
|
|
||||||
conn->port = proxyport;
|
|
||||||
} else {
|
|
||||||
conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
|
|
||||||
conn->port = uri->port;
|
|
||||||
*url = apr_pstrcat(p, uri->path, uri->query ? "?" : "",
|
*url = apr_pstrcat(p, uri->path, uri->query ? "?" : "",
|
||||||
uri->query ? uri->query : "",
|
uri->query ? uri->query : "",
|
||||||
uri->fragment ? "#" : "",
|
uri->fragment ? "#" : "",
|
||||||
uri->fragment ? uri->fragment : "", NULL);
|
uri->fragment ? uri->fragment : "", NULL);
|
||||||
}
|
}
|
||||||
|
if (!conn->hostname) {
|
||||||
|
if (proxyname) {
|
||||||
|
conn->hostname = apr_pstrdup(conn->pool, proxyname);
|
||||||
|
conn->port = proxyport;
|
||||||
|
} else {
|
||||||
|
conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
|
||||||
|
conn->port = uri->port;
|
||||||
|
}
|
||||||
|
}
|
||||||
/* TODO: add address cache for forward proxies */
|
/* TODO: add address cache for forward proxies */
|
||||||
conn->addr = worker->cp->addr;
|
conn->addr = worker->cp->addr;
|
||||||
if (r->proxyreq == PROXYREQ_PROXY) {
|
if (r->proxyreq == PROXYREQ_PROXY) {
|
||||||
|
Reference in New Issue
Block a user