]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
0.0.8 ORs should autoconnect to authdirservers and 0.0.7 servers
authorRoger Dingledine <arma@torproject.org>
Wed, 21 Jul 2004 23:43:47 +0000 (23:43 +0000)
committerRoger Dingledine <arma@torproject.org>
Wed, 21 Jul 2004 23:43:47 +0000 (23:43 +0000)
svn:r2091

src/or/main.c
src/or/router.c

index 759487c0aebe877d66e3f6d9684dbc012182c8c1..640edffe75ce3f18214e5a5c059c1e20f41716f7 100644 (file)
@@ -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();
     }
 
index f28778f0e3d6b1e270166554b9938083109a2f2f..475742c22c6ebaf02ee25dde67cd3760c8095888 100644 (file)
@@ -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 */