summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-09-28 23:27:41 +0000
committerRoger Dingledine <arma@torproject.org>2004-09-28 23:27:41 +0000
commita31ba30ae6665ebb3153d1743685e97df3f9c5a5 (patch)
treeeadbf6f8005102692298fe769be1c7417ccb4aa6
parent11384b6d925e9629d373213495eb8d02edf2e678 (diff)
downloadtor-a31ba30ae6665ebb3153d1743685e97df3f9c5a5.tar.gz
tor-a31ba30ae6665ebb3153d1743685e97df3f9c5a5.zip
if our local cached directory is new enough, go ahead and
start building circuits while we're fetching a new one svn:r2394
-rw-r--r--src/or/dirserv.c2
-rw-r--r--src/or/or.h3
-rw-r--r--src/or/routerlist.c4
3 files changed, 7 insertions, 2 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 55c2b9835b..067554ffd3 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -182,7 +182,7 @@ dirserv_router_fingerprint_is_known(const routerinfo_t *router)
}
}
-/** If we are an authoritative directory, and the list of approved
+/** If we are an authoritative dirserver, and the list of approved
* servers contains one whose identity key digest is <b>digest</b>,
* return that router's nickname. Otherwise return NULL. */
const char *dirserv_get_nickname_by_digest(const char *digest)
diff --git a/src/or/or.h b/src/or/or.h
index 23414425dc..eba01b8e61 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -136,7 +136,8 @@
#endif
/** How often do we rotate onion keys? */
-#define MIN_ONION_KEY_LIFETIME (12*60*60)
+#define OLD_MIN_ONION_KEY_LIFETIME (12*60*60) /* twice a day */
+#define MIN_ONION_KEY_LIFETIME (7*24*60*60) /* once a week */
/** How often do we rotate TLS contexts? */
#define MAX_SSL_KEY_LIFETIME (120*60)
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 3c4e39ff61..63a72d1ca9 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -68,6 +68,10 @@ int router_reload_router_list(void)
if (router_load_routerlist_from_directory(s, NULL) < 0) {
log_fn(LOG_WARN, "Cached directory '%s' was unparseable; ignoring.", filename);
}
+ if(routerlist->published_on > time(NULL) - OLD_MIN_ONION_KEY_LIFETIME/2) {
+ /* XXX use new onion key lifetime when 0.0.8 servers are obsolete */
+ directory_has_arrived(); /* do things we've been waiting to do */
+ }
tor_free(s);
}
}