|
@@ -1384,19 +1384,21 @@ pt_get_extra_info_descriptor_string(void)
|
|
|
/* If the transport proxy returned "0.0.0.0" as its address, and
|
|
|
* we know our external IP address, use it. Otherwise, use the
|
|
|
* returned address. */
|
|
|
- const char *addr_str = fmt_and_decorate_addr(&t->addr);
|
|
|
+ const char *addrport = NULL;
|
|
|
uint32_t external_ip_address = 0;
|
|
|
if (tor_addr_is_null(&t->addr) &&
|
|
|
router_pick_published_address(get_options(),
|
|
|
&external_ip_address) >= 0) {
|
|
|
- /* returned addr was 0.0.0.0 and we found our external IP
|
|
|
- address: use it. */
|
|
|
- addr_str = fmt_addr32(external_ip_address);
|
|
|
+ tor_addr_t addr;
|
|
|
+ tor_addr_from_ipv4h(&addr, external_ip_address);
|
|
|
+ addrport = fmt_addrport(&addr, t->port);
|
|
|
+ } else {
|
|
|
+ addrport = fmt_addrport(&t->addr, t->port);
|
|
|
}
|
|
|
|
|
|
smartlist_add_asprintf(string_chunks,
|
|
|
- "transport %s %s:%u",
|
|
|
- t->name, addr_str, t->port);
|
|
|
+ "transport %s %s",
|
|
|
+ t->name, addrport);
|
|
|
} SMARTLIST_FOREACH_END(t);
|
|
|
|
|
|
} SMARTLIST_FOREACH_END(mp);
|