From 3e97c12f24398db96d4f1926020656a1561082ca Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Wed, 21 Jul 2004 07:50:06 +0000 Subject: [PATCH] rearrange to prepare to solve the authdirserver initialization precedence problem. doesn't actually solve it yet. svn:r2079 --- src/or/main.c | 14 +++++++------- src/or/router.c | 4 ++-- src/or/routerlist.c | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/or/main.c b/src/or/main.c index 759487c0ae..b3898fff39 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -763,13 +763,6 @@ static int do_main_loop(void) { /* Intialize the service cache. */ rend_cache_init(); - /* load the private keys, if we're supposed to have them, and set up the - * TLS context. */ - if (init_keys() < 0 || rend_service_load_keys() < 0) { - log_fn(LOG_ERR,"Error initializing keys; exiting"); - return -1; - } - /* load the routers file */ if(options.RouterFile) { routerlist_clear_trusted_directories(); @@ -779,6 +772,13 @@ static int do_main_loop(void) { } } + /* load the private keys, if we're supposed to have them, and set up the + * TLS context. */ + if (init_keys() < 0 || rend_service_load_keys() < 0) { + log_fn(LOG_ERR,"Error initializing keys; exiting"); + return -1; + } + if(authdir_mode()) { /* the directory is already here, run startup things */ directory_has_arrived(); diff --git a/src/or/router.c b/src/or/router.c index 5783708933..c0f3cbce6d 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -509,6 +509,8 @@ int router_rebuild_descriptor(void) { ri->bandwidthburst = options.BandwidthBurst; ri->exit_policy = NULL; /* zero it out first */ router_add_exit_policy_from_config(ri); + ri->is_trusted_dir = (ri->dir_port && + router_digest_is_trusted_dir(ri->identity_digest)); if (desc_routerinfo) routerinfo_free(desc_routerinfo); desc_routerinfo = ri; @@ -516,8 +518,6 @@ int router_rebuild_descriptor(void) { log_fn(LOG_WARN, "Couldn't dump router to string."); return -1; } - ri->is_trusted_dir = (ri->dir_port && - router_digest_is_trusted_dir(ri->identity_digest)); return 0; } diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 250e7d2a87..2ba74d7eae 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -571,6 +571,7 @@ int router_load_routerlist_from_string(const char *s, int trusted) routerinfo_t *r = smartlist_get(new_list->routers, i); if (r->dir_port) { char *b; + log_fn(LOG_DEBUG,"Trusting router %s.", r->nickname); r->is_trusted_dir = 1; b = tor_malloc(DIGEST_LEN); memcpy(b, r->identity_digest, DIGEST_LEN);