[mod_cluster-commits] mod_cluster SVN: r783 - in trunk/native: mod_proxy_cluster and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Apr 4 10:00:15 EDT 2012


Author: jfrederic.clere at jboss.com
Date: 2012-04-04 10:00:15 -0400 (Wed, 04 Apr 2012)
New Revision: 783

Modified:
   trunk/native/advertise/mod_advertise.c
   trunk/native/mod_proxy_cluster/mod_proxy_cluster.c
Log:
Native part for MODCLUSTER-298.


Modified: trunk/native/advertise/mod_advertise.c
===================================================================
--- trunk/native/advertise/mod_advertise.c	2012-04-04 12:09:51 UTC (rev 782)
+++ trunk/native/advertise/mod_advertise.c	2012-04-04 14:00:15 UTC (rev 783)
@@ -284,6 +284,7 @@
 {
     char buf[MA_BSIZE];
     char dat[APR_RFC822_DATE_LEN];
+    char add[40];
     unsigned char msig[APR_MD5_DIGESTSIZE];
     unsigned char ssig[APR_MD5_DIGESTSIZE * 2 + 1];
     const char *asl;
@@ -319,13 +320,18 @@
     n = apr_snprintf(p, l, MA_ADVERTISE_SERVER_FMT,
                      asl, dat, ma_sequence, ssig, magd->srvid + 1);
     if (type == MA_ADVERTISE_SERVER) {
+        char *ma_advertise_srvs = mconf->ma_advertise_srvs;
+        if (strchr(ma_advertise_srvs, ':') != NULL) {
+            apr_snprintf(add, 40, "[%s]", mconf->ma_advertise_srvs);
+            ma_advertise_srvs = add;
+        }
         l -= n;
         n += apr_snprintf(p + n, l,
                           "X-Manager-Address: %s:%u" CRLF
                           "X-Manager-Url: %s" CRLF
                           "X-Manager-Protocol: %s" CRLF
                           "X-Manager-Host: %s" CRLF,
-                          mconf->ma_advertise_srvs,
+                          ma_advertise_srvs,
                           mconf->ma_advertise_srvp,
                           mconf->ma_advertise_srvh,
                           mconf->ma_advertise_srvm,

Modified: trunk/native/mod_proxy_cluster/mod_proxy_cluster.c
===================================================================
--- trunk/native/mod_proxy_cluster/mod_proxy_cluster.c	2012-04-04 12:09:51 UTC (rev 782)
+++ trunk/native/mod_proxy_cluster/mod_proxy_cluster.c	2012-04-04 14:00:15 UTC (rev 783)
@@ -934,7 +934,10 @@
                 if (worker == NULL)
                     continue; /* skip it */
                 apr_snprintf(sport, sizeof(sport), ":%d", worker->port);
-                url = apr_pstrcat(pool, worker->scheme, "://", worker->hostname,  sport, "/", NULL);
+                if (strchr(worker->hostname, ':') != NULL)
+                    url = apr_pstrcat(pool, worker->scheme, "://[", worker->hostname, "]", sport, "/", NULL);
+                else
+                    url = apr_pstrcat(pool, worker->scheme, "://", worker->hostname,  sport, "/", NULL);
 
                 apr_pool_create(&rrp, pool);
                 apr_pool_tag(rrp, "subrequest");
@@ -1616,13 +1619,16 @@
         char sport[7];
         char *url;
         apr_snprintf(sport, sizeof(sport), ":%d", worker->port);
-        url = apr_pstrcat(r->pool, worker->scheme, "://", worker->hostname,  sport, "/", NULL);
+        if (strchr(worker->hostname, ':') != NULL)
+            url = apr_pstrcat(r->pool, worker->scheme, "://[", worker->hostname, "]", sport, "/", NULL);
+        else
+            url = apr_pstrcat(r->pool, worker->scheme, "://", worker->hostname,  sport, "/", NULL);
         worker->s->error_time = 0; /* Force retry now */
         rv = proxy_cluster_try_pingpong(r, worker, url, conf, node->mess.ping, node->mess.timeout);
         if (rv != APR_SUCCESS) {
             worker->s->status |= PROXY_WORKER_IN_ERROR;
             ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
-                         "proxy_cluster_isup: pingpong failed");
+                         "proxy_cluster_isup: pingpong %s failed", url);
             return 500;
         }
     }



More information about the mod_cluster-commits mailing list