Pārlūkot izejas kodu

When a directory authority gives us a new guess for our IP address,
log which authority we used. Hopefully this will help us debug
the recent complaints about bad IP address guesses.


svn:r17549

Roger Dingledine 16 gadi atpakaļ
vecāks
revīzija
d7bf7e0b32
2 mainītis faili ar 10 papildinājumiem un 5 dzēšanām
  1. 3 0
      ChangeLog
  2. 7 5
      src/or/router.c

+ 3 - 0
ChangeLog

@@ -3,6 +3,9 @@ Changes in version 0.2.1.9-alpha - 200?-??-??
     - Give a better error message when an overzealous init script says,
       "sudo -u username tor --user username".  Makes Bug 882 easier
       for users to diagnose.
+    - When a directory authority gives us a new guess for our IP address,
+      log which authority we used. Hopefully this will help us debug
+      the recent complaints about bad IP address guesses.
 
   o Minor features (controller):
     - New CONSENSUS_ARRIVED event to note when a new consensus has

+ 7 - 5
src/or/router.c

@@ -1466,7 +1466,8 @@ check_descriptor_bandwidth_changed(time_t now)
 /** Note at log level severity that our best guess of address has changed from
  * <b>prev</b> to <b>cur</b>. */
 static void
-log_addr_has_changed(int severity, uint32_t prev, uint32_t cur)
+log_addr_has_changed(int severity, uint32_t prev, uint32_t cur,
+                     const char *source)
 {
   char addrbuf_prev[INET_NTOA_BUF_LEN];
   char addrbuf_cur[INET_NTOA_BUF_LEN];
@@ -1482,8 +1483,8 @@ log_addr_has_changed(int severity, uint32_t prev, uint32_t cur)
   if (prev)
     log_fn(severity, LD_GENERAL,
            "Our IP Address has changed from %s to %s; "
-           "rebuilding descriptor.",
-           addrbuf_prev, addrbuf_cur);
+           "rebuilding descriptor (source: %s).",
+           addrbuf_prev, addrbuf_cur, source);
   else
     log_notice(LD_GENERAL,
              "Guessed our IP address as %s.",
@@ -1510,7 +1511,7 @@ check_descriptor_ipaddress_changed(time_t now)
   }
 
   if (prev != cur) {
-    log_addr_has_changed(LOG_INFO, prev, cur);
+    log_addr_has_changed(LOG_INFO, prev, cur, "resolve");
     ip_address_changed(0);
   }
 }
@@ -1570,7 +1571,8 @@ router_new_address_suggestion(const char *suggestion,
     control_event_server_status(LOG_NOTICE,
                                 "EXTERNAL_ADDRESS ADDRESS=%s METHOD=DIRSERV",
                                 suggestion);
-    log_addr_has_changed(LOG_NOTICE, last_guessed_ip, addr);
+    log_addr_has_changed(LOG_NOTICE, last_guessed_ip, addr,
+                         d_conn->_base.address);
     ip_address_changed(0);
     last_guessed_ip = addr; /* router_rebuild_descriptor() will fetch it */
   }