log the hostname that resolve_my_address() used to guess our IP

This commit is contained in:
Roger Dingledine 2012-04-02 19:57:27 -04:00
parent 2b4d4ccb3d
commit dfbb12cabf

View File

@ -2089,6 +2089,8 @@ check_descriptor_ipaddress_changed(time_t now)
{ {
uint32_t prev, cur; uint32_t prev, cur;
const or_options_t *options = get_options(); const or_options_t *options = get_options();
char *hostname = NULL;
(void) now; (void) now;
if (!desc_routerinfo) if (!desc_routerinfo)
@ -2096,18 +2098,26 @@ check_descriptor_ipaddress_changed(time_t now)
/* XXXX ipv6 */ /* XXXX ipv6 */
prev = desc_routerinfo->addr; prev = desc_routerinfo->addr;
if (resolve_my_address(LOG_INFO, options, &cur, NULL) < 0) { if (resolve_my_address(LOG_INFO, options, &cur, &hostname) < 0) {
log_info(LD_CONFIG,"options->Address didn't resolve into an IP."); log_info(LD_CONFIG,"options->Address didn't resolve into an IP.");
return; return;
} }
if (prev != cur) { if (prev != cur) {
char *source;
tor_addr_t tmp_prev, tmp_cur; tor_addr_t tmp_prev, tmp_cur;
tor_addr_from_ipv4h(&tmp_prev, prev); tor_addr_from_ipv4h(&tmp_prev, prev);
tor_addr_from_ipv4h(&tmp_cur, cur); tor_addr_from_ipv4h(&tmp_cur, cur);
log_addr_has_changed(LOG_NOTICE, &tmp_prev, &tmp_cur, "resolve");
tor_asprintf(&source, "resolved from %s", hostname);
log_addr_has_changed(LOG_NOTICE, &tmp_prev, &tmp_cur, source);
tor_free(source);
ip_address_changed(0); ip_address_changed(0);
} }
tor_free(hostname);
} }
/** The most recently guessed value of our IP address, based on directory /** The most recently guessed value of our IP address, based on directory