You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2012/09/18 20:02:31 UTC
svn commit: r1387287 - /httpd/httpd/trunk/modules/proxy/mod_proxy.c
Author: jim
Date: Tue Sep 18 18:02:31 2012
New Revision: 1387287
URL: http://svn.apache.org/viewvc?rev=1387287&view=rev
Log:
By using a consistent naming structure, we can persist
across stop/starts (assuming people don't change
such basics as scheme, hostname, etc...)
Modified:
httpd/httpd/trunk/modules/proxy/mod_proxy.c
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.c?rev=1387287&r1=1387286&r2=1387287&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.c Tue Sep 18 18:02:31 2012
@@ -1142,12 +1142,16 @@ static void * create_proxy_config(apr_po
ps->forward = NULL;
ps->reverse = NULL;
ps->domain = NULL;
-#if 0
- id = ap_proxy_hashfunc(apr_psprintf(p, "%pp-%" APR_TIME_T_FMT, ps, apr_time_now()), PROXY_HASHFUNC_DEFAULT);
-#else
- id = ap_proxy_hashfunc(apr_psprintf(p, "%pp", s), PROXY_HASHFUNC_DEFAULT);
-#endif
- ps->id = apr_psprintf(p, "s%x", id);
+ /* yeah, ugly, but we need this both unique but consistent */
+ id = ap_proxy_hashfunc(apr_psprintf(p, "%s.%s.%d.%s.%s.%s",
+ (s->server_scheme ? s->server_scheme : "????"),
+ (s->server_hostname ? s->server_hostname : "???"),
+ (int)s->port,
+ (s->server_admin ? s->server_admin : "??"),
+ (s->defn_name ? s->defn_name : "?"),
+ (s->error_fname ? s->error_fname : DEFAULT_ERRORLOG))
+ , PROXY_HASHFUNC_DEFAULT);
+ ps->id = apr_psprintf(p, "p%x", id);
ps->viaopt = via_off; /* initially backward compatible with 1.3.1 */
ps->viaopt_set = 0; /* 0 means default */
ps->req = 0;