]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Extract the "do these routers have the same addr:orport" logic into a fn
authorNick Mathewson <nickm@torproject.org>
Wed, 15 Sep 2010 02:19:00 +0000 (22:19 -0400)
committerNick Mathewson <nickm@torproject.org>
Wed, 15 Sep 2010 02:19:00 +0000 (22:19 -0400)
src/or/dirserv.c
src/or/routerlist.c
src/or/routerlist.h

index b5c33739b3cfbc5e9e585d0e1933e05f29bdf686..cfee498bd1ec57d829b9ec78162739a05d4c0a1f 100644 (file)
@@ -3136,7 +3136,7 @@ dirserv_should_launch_reachability_test(routerinfo_t *ri, routerinfo_t *ri_old)
     /* It just came out of hibernation; launch a reachability test */
     return 1;
   }
-  if (ri_old->addr != ri->addr || ri_old->or_port != ri->or_port) {
+  if (! routers_have_same_or_addr(ri, ri_old)) {
     /* Address or port changed; launch a reachability test */
     return 1;
   }
index 968d5a104087208304da6670d4101fdf8c09d728..4cbb49066cd4e647b20ad0a079f9d6c8ab83f7f9 100644 (file)
@@ -1257,6 +1257,13 @@ mark_all_trusteddirservers_up(void)
   router_dir_info_changed();
 }
 
+/** Return true iff r1 and r2 have the same address and OR port. */
+int
+routers_have_same_or_addr(const routerinfo_t *r1, const routerinfo_t *r2)
+{
+  return r1->addr == r2->addr && r1->or_port == r2->or_port;
+}
+
 /** Reset all internal variables used to count failed downloads of network
  * status objects. */
 void
@@ -3246,8 +3253,7 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
       log_debug(LD_DIR, "Replacing entry for router '%s/%s' [%s]",
                 router->nickname, old_router->nickname,
                 hex_str(id_digest,DIGEST_LEN));
-      if (router->addr == old_router->addr &&
-          router->or_port == old_router->or_port) {
+      if (routers_have_same_or_addr(router, old_router)) {
         /* these carry over when the address and orport are unchanged. */
         router->last_reachable = old_router->last_reachable;
         router->testing_since = old_router->testing_since;
index d71a737b88ff8fb6e315d23b2dd204dd33c2986d..6ba86785951628e4940ffe203f1f0036d2ca3f9d 100644 (file)
@@ -35,6 +35,7 @@ int router_get_my_share_of_directory_requests(double *v2_share_out,
 void router_reset_status_download_failures(void);
 void routerlist_add_family(smartlist_t *sl, routerinfo_t *router);
 int routers_in_same_family(routerinfo_t *r1, routerinfo_t *r2);
+int routers_have_same_or_addr(const routerinfo_t *r1, const routerinfo_t *r2);
 void add_nickname_list_to_smartlist(smartlist_t *sl, const char *list,
                                     int must_be_running);
 int router_nickname_is_in_list(routerinfo_t *router, const char *list);