summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-01-08 23:31:25 +0000
committerRoger Dingledine <arma@torproject.org>2008-01-08 23:31:25 +0000
commit50f4cd10ad61191d66dbb6e06ac84d87e1bfeec9 (patch)
tree81aed2813a5edbb7d1d1b96a7222c95c4a1e445f
parent58d88dfc7feed6e5683f3c57442f2697364a53ac (diff)
downloadtor-50f4cd10ad61191d66dbb6e06ac84d87e1bfeec9.tar.gz
tor-50f4cd10ad61191d66dbb6e06ac84d87e1bfeec9.zip
don't rebuild the router store for all those times when we
fetch one descriptor and then we don't like it svn:r13077
-rw-r--r--src/or/routerlist.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 7794d30fe5..cada13fb43 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -3155,6 +3155,7 @@ router_load_routers_from_string(const char *s, const char *eos,
const char *msg;
int from_cache = (saved_location != SAVED_NOWHERE);
int allow_annotations = (saved_location != SAVED_NOWHERE);
+ int any_changed = 0;
router_parse_list_from_string(&s, eos, routers, saved_location, 0,
allow_annotations, prepend_annotations);
@@ -3186,6 +3187,7 @@ router_load_routers_from_string(const char *s, const char *eos,
}
if (router_add_to_routerlist(ri, &msg, from_cache, !from_cache) >= 0) {
+ any_changed = 1;
smartlist_add(changed, ri);
routerlist_descriptors_added(changed, from_cache);
smartlist_clear(changed);
@@ -3194,7 +3196,8 @@ router_load_routers_from_string(const char *s, const char *eos,
routerlist_assert_ok(routerlist);
- router_rebuild_store(0, &routerlist->desc_store);
+ if (any_changed)
+ router_rebuild_store(0, &routerlist->desc_store);
smartlist_free(routers);
smartlist_free(changed);