Author: mturk
Date: Fri Feb 20 10:52:47 2009
New Revision: 746200
URL: http://svn.apache.org/viewvc?rev=746200&view=rev
Log:
Display address from shared memory
Modified:
tomcat/connectors/trunk/jk/native/common/jk_status.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?rev=746200&r1=746199&r2=746200&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Fri Feb 20 10:52:47
2009
@@ -1591,6 +1591,18 @@
JK_TRACE_EXIT(l);
}
+static const char *dump_ajp_addr(ajp_worker_t *aw, char *buf)
+{
+ if (aw->port > 0)
+ return jk_dump_hinfo(&aw->worker_inet_addr, buf);
+ else {
+ if (aw->s->addr_sequence != aw->s->addr_sequence)
+ return "unresolved";
+ else
+ return "invalid";
+ }
+}
+
static void display_worker_ajp_conf_details(jk_ws_service_t *s,
status_endpoint_t *p,
ajp_worker_t *aw,
@@ -1606,8 +1618,8 @@
jk_printf(s, JK_STATUS_SHOW_MEMBER_CONF_ROW,
aw->name,
status_worker_type(type),
- aw->host, aw->port,
- jk_dump_hinfo(&aw->worker_inet_addr, buf),
+ aw->s->hostname, aw->s->port,
+ dump_ajp_addr(aw, buf),
aw->cache_timeout,
aw->connect_timeout,
aw->prepost_timeout,
@@ -1618,8 +1630,8 @@
else
jk_printf(s, JK_STATUS_SHOW_AJP_CONF_ROW,
status_worker_type(type),
- aw->host, aw->port,
- jk_dump_hinfo(&aw->worker_inet_addr, buf),
+ aw->s->hostname, aw->s->port,
+ dump_ajp_addr(aw, buf),
aw->cache_timeout,
aw->connect_timeout,
aw->prepost_timeout,
@@ -1744,9 +1756,9 @@
jk_print_xml_att_string(s, off+2, "name", ajp_name);
jk_print_xml_att_string(s, off+2, "type",
status_worker_type(aw->worker.type));
}
- jk_print_xml_att_string(s, off+2, "host", aw->host);
- jk_print_xml_att_int(s, off+2, "port", aw->port);
- jk_print_xml_att_string(s, off+2, "address",
jk_dump_hinfo(&aw->worker_inet_addr, buf));
+ jk_print_xml_att_string(s, off+2, "host", aw->s->hostname);
+ jk_print_xml_att_int(s, off+2, "port", aw->s->port);
+ jk_print_xml_att_string(s, off+2, "address", dump_ajp_addr(aw, buf));
jk_print_xml_att_int(s, off+2, "connection_pool_timeout",
aw->cache_timeout);
jk_print_xml_att_int(s, off+2, "ping_timeout", aw->ping_timeout);
jk_print_xml_att_int(s, off+2, "connect_timeout", aw->connect_timeout);
@@ -1803,9 +1815,9 @@
jk_printf(s, " name=%s", ajp_name);
jk_printf(s, " type=%s", status_worker_type(aw->worker.type));
}
- jk_printf(s, " host=%s", aw->host);
- jk_printf(s, " port=%d", aw->port);
- jk_printf(s, " address=%s", jk_dump_hinfo(&aw->worker_inet_addr, buf));
+ jk_printf(s, " host=%s", aw->s->hostname);
+ jk_printf(s, " port=%d", aw->s->port);
+ jk_printf(s, " address=%s", dump_ajp_addr(aw, buf));
jk_printf(s, " connection_pool_timeout=%d", aw->cache_timeout);
jk_printf(s, " ping_timeout=%d", aw->ping_timeout);
jk_printf(s, " connect_timeout=%d", aw->connect_timeout);
@@ -1859,9 +1871,9 @@
jk_print_prop_att_string(s, w, name, "list", ajp_name);
jk_print_prop_att_string(s, w, ajp_name, "type",
status_worker_type(aw->worker.type));
}
- jk_print_prop_att_string(s, w, ajp_name, "host", aw->host);
- jk_print_prop_att_int(s, w, ajp_name, "port", aw->port);
- jk_print_prop_att_string(s, w, ajp_name, "address",
jk_dump_hinfo(&aw->worker_inet_addr, buf));
+ jk_print_prop_att_string(s, w, ajp_name, "host", aw->s->hostname);
+ jk_print_prop_att_int(s, w, ajp_name, "port", aw->s->port);
+ jk_print_prop_att_string(s, w, ajp_name, "address", dump_ajp_addr(aw,
buf));
jk_print_prop_att_int(s, w, ajp_name, "connection_pool_timeout",
aw->cache_timeout);
jk_print_prop_att_int(s, w, ajp_name, "ping_timeout",
aw->ping_timeout);
jk_print_prop_att_int(s, w, ajp_name, "connect_timeout",
aw->connect_timeout);
@@ -3175,7 +3187,21 @@
rc |= 4;
as = 1;
}
- aw->s->addr_sequence += as;
+ if (as) {
+ aw->s->addr_sequence += as;
+ aw->host = aw->s->hostname;
+ aw->addr_sequence = aw->s->addr_sequence;
+ aw->port = aw->s->port;
+ if (!jk_resolve(aw->host, aw->port, &aw->worker_inet_addr,
+ aw->worker.we->pool, l)) {
+ jk_log(l, JK_LOG_ERROR,
+ "Status worker '%s' failed resolving 'address' for sub
worker '%s' to '%s:%d'",
+ w->name, aw->name, aw->host, aw->port);
+ strcpy(aw->s->hostname, "unknown");
+ aw->host = aw->s->hostname;
+ aw->port = aw->s->port = 0;
+ }
+ }
if (set_int_if_changed(p, aw->name, "ping_timeout",
JK_STATUS_ARG_AJP_PING_TO,
0, INT_MAX, &aw->ping_timeout, lb_name, l))
rc |= 4;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]