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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org