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;