Browse Source

call directory_has_arrived has arrived every time we get
a new directory, not just the first time


svn:r1581

Roger Dingledine 21 years ago
parent
commit
c5bef32d95
2 changed files with 10 additions and 9 deletions
  1. 1 8
      src/or/directory.c
  2. 9 1
      src/or/main.c

+ 1 - 8
src/or/directory.c

@@ -11,7 +11,6 @@ static int directory_handle_command(connection_t *conn);
 /********* START VARIABLES **********/
 
 extern or_options_t options; /* command-line and config-file options */
-extern int has_fetched_directory;
 
 char rend_publish_string[] = "/rendezvous/publish";
 char rend_fetch_url[] = "/rendezvous/";
@@ -243,13 +242,7 @@ int connection_dir_process_inbuf(connection_t *conn) {
       } else {
         log_fn(LOG_INFO,"updated routers.");
       }
-      if(options.ORPort) { /* connect to them all */
-        router_retry_connections();
-      }
-      if (has_fetched_directory==0) {
-        has_fetched_directory=1;
-        directory_has_arrived(); /* do things we've been waiting to do */
-      }
+      directory_has_arrived(); /* do things we've been waiting to do */
     }
 
     if(conn->purpose == DIR_PURPOSE_UPLOAD_DIR) {

+ 9 - 1
src/or/main.c

@@ -282,14 +282,22 @@ static void conn_close_if_marked(int i) {
   }
 }
 
+/* This function is called whenever we successfully pull
+ * down a directory */
 void directory_has_arrived(void) {
 
-  log_fn(LOG_INFO, "We now have a directory.");
+  log_fn(LOG_INFO, "A directory has arrived.");
 
   /* just for testing */
 //  directory_initiate_command(router_pick_directory_server(),
 //                             DIR_PURPOSE_FETCH_RENDDESC, "foo", 3);
 
+  has_fetched_directory=1;
+
+  if(options.ORPort) { /* connect to them all */
+    router_retry_connections();
+  }
+
   rend_services_init(); /* get bob to initialize all his hidden services */
 
 }