Browse Source

bugfix: When testing reachability of our dirport, don't launch a new
test if there's already one in progress.


svn:r8604

Roger Dingledine 19 years ago
parent
commit
baf208d7b3
2 changed files with 6 additions and 1 deletions
  1. 2 0
      ChangeLog
  2. 4 1
      src/or/router.c

+ 2 - 0
ChangeLog

@@ -85,6 +85,8 @@ Changes in version 0.1.2.2-alpha - 2006-10-??
       Previously, the server would give them no answer at all.
 
   o Minor Bugfixes:
+    - When testing reachability of our dirport, don't launch a new
+      test if there's already one in progress.
     - Two small performance improvements on parsing descriptors.
     - We were building exactly the wrong circuits when we anticipated
       hidden service requirements, meaning Tor would have to build all

+ 4 - 1
src/or/router.c

@@ -452,7 +452,10 @@ consider_testing_reachability(int test_or, int test_dir)
     circuit_launch_by_router(CIRCUIT_PURPOSE_TESTING, me, 0, 1, 1);
   }
 
-  if (test_dir && !check_whether_dirport_reachable()) {
+  if (test_dir && !check_whether_dirport_reachable() &&
+      !connection_get_by_type_addr_port_purpose(
+                CONN_TYPE_DIR, me->addr, me->dir_port,
+                DIR_PURPOSE_FETCH_SERVERDESC)) {
     /* ask myself, via tor, for my server descriptor. */
     directory_initiate_command_router(me, DIR_PURPOSE_FETCH_SERVERDESC,
                                       1, "authority", NULL, 0);