Преглед изворни кода

Let directory authorities startup even when they can't generate
a descriptor immediately, e.g. because they don't know their
address.


svn:r11228

Roger Dingledine пре 17 година
родитељ
комит
4ff3343e98
2 измењених фајлова са 17 додато и 14 уклоњено
  1. 6 1
      ChangeLog
  2. 11 13
      src/or/router.c

+ 6 - 1
ChangeLog

@@ -1,5 +1,4 @@
 Changes in version 0.2.0.6-alpha - 2007-??-??
-
   o Minor bugfixes (bridges):
     - Do not intermix bridge routers with controller-added routers. (Bugfix
       on 0.2.0.x)
@@ -8,6 +7,12 @@ Changes in version 0.2.0.6-alpha - 2007-??-??
     - Do not fail with an assert when accept() returns an unexpected address
       family.  Addresses but does not wholly fix bug 483. (Bugfix on 0.2.0.x)
 
+  o Minor bugfixes (misc):
+    - Let directory authorities startup even when they can't generate
+      a descriptor immediately, e.g. because they don't know their
+      address.
+
+
 Changes in version 0.2.0.5-alpha - 2007-08-19
   o Removed features:
     - Version 1 directories are no longer generated in full. Instead,

+ 11 - 13
src/or/router.c

@@ -429,19 +429,17 @@ init_keys(void)
       log_err(LD_GENERAL,"Error adding own fingerprint to approved set");
       return -1;
     }
-    if (!mydesc) {
-      log_err(LD_GENERAL,"Error initializing descriptor.");
-      return -1;
-    }
-    ri = router_parse_entry_from_string(mydesc, NULL, 1);
-    if (!ri) {
-      log_err(LD_GENERAL,"Generated a routerinfo we couldn't parse.");
-      return -1;
-    }
-    if (dirserv_add_descriptor(ri, &m) < 0) {
-      log_err(LD_GENERAL,"Unable to add own descriptor to directory: %s",
-              m?m:"<unknown error>");
-      return -1;
+    if (mydesc) {
+      ri = router_parse_entry_from_string(mydesc, NULL, 1);
+      if (!ri) {
+        log_err(LD_GENERAL,"Generated a routerinfo we couldn't parse.");
+        return -1;
+      }
+      if (dirserv_add_descriptor(ri, &m) < 0) {
+        log_err(LD_GENERAL,"Unable to add own descriptor to directory: %s",
+                m?m:"<unknown error>");
+        return -1;
+      }
     }
   }