aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-10-16 02:15:41 +0000
committerNick Mathewson <nickm@torproject.org>2007-10-16 02:15:41 +0000
commitdbdaa610eeeb61ddd10068089efdfe0a97321b57 (patch)
tree03797124f055ab5e3fc92129c39c5a1fbd067e18 /src
parente477a3860a686205e6374ce8759fe15f3c86dc18 (diff)
downloadtor-dbdaa610eeeb61ddd10068089efdfe0a97321b57.tar
tor-dbdaa610eeeb61ddd10068089efdfe0a97321b57.tar.gz
r15814@catbus: nickm | 2007-10-15 22:15:19 -0400
Fix last patch. svn:r11961
Diffstat (limited to 'src')
-rw-r--r--src/or/networkstatus.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index 32f61fc86..57d951325 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -864,18 +864,16 @@ networkstatus_copy_old_consensus_info(networkstatus_vote_t *new_c,
SMARTLIST_FOREACH(new_c->routerstatus_list, routerstatus_t *, rs_new,
{
int r;
- while (rs_old && /* XXX020 Nick, solve this: sometimes rs_old is NULL */
- (r = memcmp(rs_old->identity_digest, rs_new->identity_digest,
+ while ((r = memcmp(rs_old->identity_digest, rs_new->identity_digest,
DIGEST_LEN))<0) {
- if (idx == smartlist_len(old_c->routerstatus_list))
+ if (++idx == smartlist_len(old_c->routerstatus_list))
goto done;
- rs_old = smartlist_get(old_c->routerstatus_list, ++idx);
+ rs_old = smartlist_get(old_c->routerstatus_list, idx);
}
if (r>0)
continue;
- if (r<0) /* XXX020 Nick, solve this: sometimes it's -1 which doesn't
- * match your comment below. */
- continue;
+ tor_assert(r==0);
+
/* Okay, so we're looking at the same identity. */
rs_new->name_lookup_warned = rs_old->name_lookup_warned;
rs_new->last_dir_503_at = rs_old->last_dir_503_at;
@@ -1167,16 +1165,17 @@ routers_update_status_from_consensus_networkstatus(smartlist_t *routers,
const char *digest = router->cache_info.identity_digest;
int r;
while ((r = memcmp(rs->identity_digest, digest, DIGEST_LEN))<0) {
- if (idx == smartlist_len(ns->routerstatus_list)) {
+ if (++idx == smartlist_len(ns->routerstatus_list)) {
/* We're out of routerstatuses. Bail. */
goto done;
}
- rs = smartlist_get(ns->routerstatus_list, ++idx);
+ rs = smartlist_get(ns->routerstatus_list, idx);
}
if (r>0) {
/* We have no routerstatus for this router. Skip it. */
continue;
}
+ tor_assert(r==0);
ds = router_get_trusteddirserver_by_digest(digest);