From: Nick Mathewson Date: Wed, 14 Dec 2005 22:05:10 +0000 (+0000) Subject: When we mark a router as down, also mark its local_routerstatus as not running. ... X-Git-Tag: tor-0.1.1.11-alpha~197 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7af95e5c06e82ca784c21c764000c053980a14aa;p=thirdparty%2Ftor.git When we mark a router as down, also mark its local_routerstatus as not running. This way, we do not use directories that are believed to be down. svn:r5587 --- diff --git a/src/or/routerlist.c b/src/or/routerlist.c index c2c835c76a..44033a15c4 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -1413,6 +1413,7 @@ void router_mark_as_down(const char *digest) { routerinfo_t *router; + local_routerstatus_t *status; tor_assert(digest); SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, d, @@ -1420,13 +1421,17 @@ router_mark_as_down(const char *digest) d->is_running = 0); router = router_get_by_digest(digest); - if (!router) /* we don't seem to know about him in the first place */ - return; - debug(LD_DIR,"Marking router '%s' as down.",router->nickname); - if (router_is_me(router) && !we_are_hibernating()) - warn(LD_NET, "We just marked ourself as down. Are your external " - "addresses reachable?"); - router->is_running = 0; + if (router) { + debug(LD_DIR,"Marking router '%s' as down.",router->nickname); + if (router_is_me(router) && !we_are_hibernating()) + warn(LD_NET, "We just marked ourself as down. Are your external " + "addresses reachable?"); + router->is_running = 0; + } + status = router_get_combined_status_by_digest(digest); + if (status) { + status->status.is_running = 0; + } } /** Add router to the routerlist, if we don't already have it. Replace