mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2
Conflicts: src/or/networkstatus.c
This commit is contained in:
commit
4c3853aca8
@ -261,7 +261,7 @@ char *smartlist_join_strings2(smartlist_t *sl, const char *join,
|
||||
* Example use:
|
||||
* SMARTLIST_FOREACH_JOIN(routerstatus_list, routerstatus_t *, rs,
|
||||
* routerinfo_list, routerinfo_t *, ri,
|
||||
* tor_memcmp(rs->identity_digest, ri->identity_digest, 20),
|
||||
* tor_memcmp(rs->identity_digest, ri->identity_digest, 20),
|
||||
* log_info(LD_GENERAL,"No match for %s", ri->nickname)) {
|
||||
* log_info(LD_GENERAL, "%s matches routerstatus %p", ri->nickname, rs);
|
||||
* } SMARTLIST_FOREACH_JOIN_END(rs, ri);
|
||||
|
@ -28,3 +28,4 @@ int tor_memeq(const void *a, const void *b, size_t sz);
|
||||
#define fast_memneq(a,b,c) (0!=memcmp((a),(b),(c)))
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -397,8 +397,9 @@ compare_vote_rs(const vote_routerstatus_t *a, const vote_routerstatus_t *b)
|
||||
if ((r = fast_memcmp(a->status.identity_digest, b->status.identity_digest,
|
||||
DIGEST_LEN)))
|
||||
return r;
|
||||
if ((r = fast_memcmp(a->status.descriptor_digest, b->status.descriptor_digest,
|
||||
DIGEST_LEN)))
|
||||
if ((r = fast_memcmp(a->status.descriptor_digest,
|
||||
b->status.descriptor_digest,
|
||||
DIGEST_LEN)))
|
||||
return r;
|
||||
if ((r = (int)(b->status.published_on - a->status.published_on)))
|
||||
return r;
|
||||
@ -1705,7 +1706,8 @@ networkstatus_compute_consensus(smartlist_t *votes,
|
||||
if (index[v_sl_idx] < size[v_sl_idx]) {
|
||||
rs = smartlist_get(v->routerstatus_list, index[v_sl_idx]);
|
||||
if (!lowest_id ||
|
||||
fast_memcmp(rs->status.identity_digest, lowest_id, DIGEST_LEN) < 0)
|
||||
fast_memcmp(rs->status.identity_digest,
|
||||
lowest_id, DIGEST_LEN) < 0)
|
||||
lowest_id = rs->status.identity_digest;
|
||||
}
|
||||
});
|
||||
@ -1769,7 +1771,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
|
||||
rs = compute_routerstatus_consensus(matching_descs, consensus_method,
|
||||
microdesc_digest);
|
||||
/* Copy bits of that into rs_out. */
|
||||
tor_assert(fast_memeq(lowest_id, rs->status.identity_digest, DIGEST_LEN));
|
||||
tor_assert(fast_memeq(lowest_id, rs->status.identity_digest,DIGEST_LEN));
|
||||
memcpy(rs_out.identity_digest, lowest_id, DIGEST_LEN);
|
||||
memcpy(rs_out.descriptor_digest, rs->status.descriptor_digest,
|
||||
DIGEST_LEN);
|
||||
|
@ -2332,8 +2332,8 @@ router_get_by_nickname(const char *nickname, int warn_if_unnamed)
|
||||
if (n_matches <= 1 || router->is_running)
|
||||
best_match = router;
|
||||
} else if (maybedigest &&
|
||||
tor_memeq(digest, router->cache_info.identity_digest, DIGEST_LEN)
|
||||
) {
|
||||
tor_memeq(digest, router->cache_info.identity_digest,
|
||||
DIGEST_LEN)) {
|
||||
if (router_hex_digest_matches(router, nickname))
|
||||
return router;
|
||||
/* If we reach this point, we have a ID=name syntax that matches the
|
||||
@ -5063,8 +5063,9 @@ routerinfo_incompatible_with_extrainfo(routerinfo_t *ri, extrainfo_t *ei,
|
||||
|
||||
/* The identity must match exactly to have been generated at the same time
|
||||
* by the same router. */
|
||||
if (tor_memneq(ri->cache_info.identity_digest, ei->cache_info.identity_digest,
|
||||
DIGEST_LEN)) {
|
||||
if (tor_memneq(ri->cache_info.identity_digest,
|
||||
ei->cache_info.identity_digest,
|
||||
DIGEST_LEN)) {
|
||||
if (msg) *msg = "Extrainfo nickname or identity did not match routerinfo";
|
||||
goto err; /* different servers */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user