From 548d4174ef7449fc32e9a4ae993a3d13f9e45fe6 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 9 Nov 2004 17:12:56 +0000 Subject: When listing router status, include ourself if we are awake svn:r2752 --- src/or/dirserv.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/or/dirserv.c') diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 54d1ec3f7e..8e3cc5f796 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -498,7 +498,7 @@ list_server_status(char **running_routers_out, char **router_status_out) { /* List of entries in running-routers style: An optional !, then either * a nickname or a dollar-prefixed hexdigest. */ - smartlist_t *rr_entries; + smartlist_t *rr_entries; /* List of entries in a router-status style: An optional !, then an optional * equals-suffixed nickname, then a dollar-prefixed hexdigest. */ smartlist_t *rs_entries; @@ -511,11 +511,15 @@ list_server_status(char **running_routers_out, char **router_status_out) SMARTLIST_FOREACH(descriptor_list, descriptor_entry_t *, d, { int is_live; - connection_t *conn; + connection_t *conn; tor_assert(d->router); conn = connection_get_by_identity_digest( d->router->identity_digest, CONN_TYPE_OR); - is_live = (conn && conn->state == OR_CONN_STATE_OPEN); + /* Treat a router as alive if + * - It's me, and I'm not hibernating. + * or - we're connected to it. */ + is_live = (router_is_me(d->router) && !we_are_hibernating()) || + (conn && conn->state == OR_CONN_STATE_OPEN); smartlist_add(rr_entries, list_single_server_status(d, is_live, 1)); smartlist_add(rs_entries, list_single_server_status(d, is_live, 0)); }); -- cgit v1.2.3-54-g00ecf