aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2004-04-09 19:37:50 +0000
committerNick Mathewson <nickm@torproject.org>2004-04-09 19:37:50 +0000
commitf9ade70cf9b41753c9027ca1f32f5b58a29e8bca (patch)
tree698bd9a2e417311968cda993c7fed326632daa5e /src/or
parentc80b42e17cafdee20ef52a7f5998acb50a95a065 (diff)
downloadtor-f9ade70cf9b41753c9027ca1f32f5b58a29e8bca.tar
tor-f9ade70cf9b41753c9027ca1f32f5b58a29e8bca.tar.gz
Resolve init-services-in-do-hup issue
svn:r1583
Diffstat (limited to 'src/or')
-rw-r--r--src/or/main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/or/main.c b/src/or/main.c
index fb7c4a315..d20555208 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -540,8 +540,6 @@ static int do_hup(void) {
log_fn(LOG_ERR,"Error reloading rendezvous service keys");
exit(1);
}
- /* We'll re-call rend_services_init after the new directory arrives.
- * XXXX but what if we're the the directory? */
if(retry_all_connections() < 0) {
log_fn(LOG_ERR,"Failed to bind one of the listener ports.");
return -1;
@@ -553,6 +551,12 @@ static int do_hup(void) {
if(dirserv_parse_fingerprint_file(keydir) < 0) {
log_fn(LOG_WARN, "Error reloading fingerprints. Continuing with old list.");
}
+ /* Since we aren't fetching a directory, we won't retry rendezvous points
+ * when it gets in. Try again now. */
+ if (rend_services_init()<0) {
+ log_fn(LOG_ERR,"Error updating rendezvous services");
+ return -1;
+ }
} else {
/* fetch a new directory */
directory_initiate_command(router_pick_directory_server(),