Commit 3c2c8ed4 authored by Roger Dingledine's avatar Roger Dingledine
Browse files

0.0.8 ORs should autoconnect to authdirservers and 0.0.7 servers


svn:r2091
parent f82a3650
Loading
Loading
Loading
Loading
+5 −2
Changes for src/or/main.c: 5 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ void directory_has_arrived(void) {

  has_fetched_directory=1;

  if(clique_mode()) { /* connect to them all */
  if(server_mode()) { /* connect to the appropriate routers */
    router_retry_connections();
  }
}
@@ -541,7 +541,10 @@ static void run_scheduled_events(time_t now) {
    if(authdir_mode()) {
      /* We're a directory; dump any old descriptors. */
      dirserv_remove_old_servers();
      /* dirservers try to reconnect, in case connections have failed */
    }
    if(server_mode()) {
      /* dirservers try to reconnect, in case connections have failed;
       * and normal servers try to reconnect to dirservers */
      router_retry_connections();
    }

+7 −1
Changes for src/or/router.c: 7 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -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 */