diff options
Diffstat (limited to 'src/or/router.c')
-rw-r--r-- | src/or/router.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/or/router.c b/src/or/router.c index f28778f0e3..475742c22c 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -347,18 +347,24 @@ int init_keys(void) { * Clique maintenance */ -/** OR only: try to open connections to all of the other ORs we know about. +/** OR only: if in clique mode, try to open connections to all of the + * other ORs we know about. Otherwise, open connections to those we + * think are in clique mode. */ void router_retry_connections(void) { int i; routerinfo_t *router; routerlist_t *rl; + tor_assert(server_mode()); + router_get_routerlist(&rl); for (i=0;i < smartlist_len(rl->routers);i++) { router = smartlist_get(rl->routers, i); if(router_is_me(router)) continue; + if(!clique_mode() && !router_is_clique_mode(router)) + continue; if(!connection_get_by_identity_digest(router->identity_digest, CONN_TYPE_OR)) { /* not in the list */ |