control: GETINFO address/ use new find address API

At the moment, this command only returns the IPv4. Do so by using the new
relay_find_addr_to_publish().

New commands to return IPv4 and IPv6 will be done with the work in tor#40039.

Related to #40025

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2020-07-14 13:02:21 -04:00
parent 1a347b4790
commit 75a2e7fcb7

View File

@ -132,12 +132,12 @@ getinfo_helper_misc(control_connection_t *conn, const char *question,
} else if (!strcmp(question, "features/names")) {
*answer = tor_strdup("VERBOSE_NAMES EXTENDED_EVENTS");
} else if (!strcmp(question, "address")) {
uint32_t addr;
if (router_pick_published_address(get_options(), &addr, 0) < 0) {
tor_addr_t addr;
if (!relay_find_addr_to_publish(get_options(), AF_INET, false, &addr)) {
*errmsg = "Address unknown";
return -1;
}
*answer = tor_dup_ip(addr);
*answer = tor_addr_to_str_dup(&addr);
tor_assert_nonfatal(*answer);
} else if (!strcmp(question, "traffic/read")) {
tor_asprintf(answer, "%"PRIu64, (get_bytes_read()));