diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-10-16 02:15:41 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-10-16 02:15:41 +0000 |
commit | dbdaa610eeeb61ddd10068089efdfe0a97321b57 (patch) | |
tree | 03797124f055ab5e3fc92129c39c5a1fbd067e18 /src | |
parent | e477a3860a686205e6374ce8759fe15f3c86dc18 (diff) | |
download | tor-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.c | 17 |
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); |