Browse Source

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

Roger Dingledine 12 years ago
parent
commit
dfbb12cabf
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/or/router.c

+ 12 - 2
src/or/router.c

@@ -2089,6 +2089,8 @@ check_descriptor_ipaddress_changed(time_t now)
 {
   uint32_t prev, cur;
   const or_options_t *options = get_options();
+  char *hostname = NULL;
+
   (void) now;
 
   if (!desc_routerinfo)
@@ -2096,18 +2098,26 @@ check_descriptor_ipaddress_changed(time_t now)
 
   /* XXXX ipv6 */
   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.");
     return;
   }
 
   if (prev != cur) {
+    char *source;
     tor_addr_t tmp_prev, tmp_cur;
+
     tor_addr_from_ipv4h(&tmp_prev, prev);
     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);
   }
+
+  tor_free(hostname);
 }
 
 /** The most recently guessed value of our IP address, based on directory