summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2005-03-27 11:52:15 +0000
committerRoger Dingledine <arma@torproject.org>2005-03-27 11:52:15 +0000
commit9b5432214d4c232da7c26ae427ed5186e3ad07b0 (patch)
tree21b25710b200d49fa7b9789693ac558cacb01457
parent452563e157b56e49433a49225975cc2b03c54acf (diff)
downloadtor-9b5432214d4c232da7c26ae427ed5186e3ad07b0.tar.gz
tor-9b5432214d4c232da7c26ae427ed5186e3ad07b0.zip
but only do the rapid reachability testing if we're hoping to be a server.
svn:r3902
-rw-r--r--src/or/main.c7
-rw-r--r--src/or/router.c4
2 files changed, 8 insertions, 3 deletions
diff --git a/src/or/main.c b/src/or/main.c
index 3c24630715..60db6b4941 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -510,7 +510,6 @@ get_status_fetch_period(or_options_t *options)
return 30*60;
}
-
/** This function is called whenever we successfully pull down a directory.
* If <b>identity_digest</b> is defined, it contains the digest of the
* router that just gave us this directory. */
@@ -532,7 +531,8 @@ void directory_has_arrived(time_t now, char *identity_digest) {
if (!time_to_fetch_running_routers)
time_to_fetch_running_routers = now + get_status_fetch_period(options);
- if (identity_digest) { /* if this is us, then our dirport is reachable */
+ if (server_mode(options) && identity_digest) {
+ /* if this is us, then our dirport is reachable */
routerinfo_t *router = router_get_by_digest(identity_digest);
if (!router) // XXX
log_fn(LOG_WARN,"Bug: router_get_by_digest doesn't find me.");
@@ -713,7 +713,8 @@ static void run_scheduled_events(time_t now) {
consider_publishable_server(now, 0);
/* also, check religiously for reachability, if it's within the first
* 20 minutes of our uptime. */
- if (stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT)
+ if (server_mode(options) &&
+ stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT)
consider_testing_reachability();
}
diff --git a/src/or/router.c b/src/or/router.c
index 6927f0e9bd..c7f0b46578 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -392,6 +392,10 @@ int check_whether_ports_reachable(void) {
void consider_testing_reachability(void) {
routerinfo_t *me = router_get_my_routerinfo();
+ if (!me) {
+ log_fn(LOG_WARN,"Bug: router_get_my_routerinfo() did not find my routerinfo?");
+ return;
+ }
if (!can_reach_or_port) {
circuit_launch_by_router(CIRCUIT_PURPOSE_TESTING, me, 0, 0, 1);