Loading changes/bug1899_test_changed_addr 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor features - When a router changes IP or port, authorities now launch a new reachability test for it. (Implements ticket 1899) src/or/dirserv.c +4 −0 Original line number Diff line number Diff line Loading @@ -3136,6 +3136,10 @@ 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 (! routers_have_same_or_addr(ri, ri_old)) { /* Address or port changed; launch a reachability test */ return 1; } return 0; } Loading src/or/routerlist.c +8 −2 Original line number Diff line number Diff line Loading @@ -1274,6 +1274,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 Loading Loading @@ -3270,8 +3277,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; Loading src/or/routerlist.h +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,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); Loading Loading
changes/bug1899_test_changed_addr 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor features - When a router changes IP or port, authorities now launch a new reachability test for it. (Implements ticket 1899)
src/or/dirserv.c +4 −0 Original line number Diff line number Diff line Loading @@ -3136,6 +3136,10 @@ 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 (! routers_have_same_or_addr(ri, ri_old)) { /* Address or port changed; launch a reachability test */ return 1; } return 0; } Loading
src/or/routerlist.c +8 −2 Original line number Diff line number Diff line Loading @@ -1274,6 +1274,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 Loading Loading @@ -3270,8 +3277,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; Loading
src/or/routerlist.h +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,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); Loading