Back out backport of r9799 from the 0.1.2.x branch.
svn:r10008
This commit is contained in:
parent
dec649d564
commit
9289e35d81
|
@ -1588,16 +1588,11 @@ _routerlist_find_elt(smartlist_t *sl, void *ri, int idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Insert an item <b>ri</b> into the routerlist <b>rl</b>, updating indices
|
/** Insert an item <b>ri</b> into the routerlist <b>rl</b>, updating indices
|
||||||
* as needed. There must be no previous member of <b>rl</b> with the same
|
* as needed. */
|
||||||
* identity giest as <b>ri</b>: If there is, call routerlist_replace
|
|
||||||
* instead.
|
|
||||||
*/
|
|
||||||
static void
|
static void
|
||||||
routerlist_insert(routerlist_t *rl, routerinfo_t *ri)
|
routerlist_insert(routerlist_t *rl, routerinfo_t *ri)
|
||||||
{
|
{
|
||||||
routerinfo_t *ri_old;
|
digestmap_set(rl->identity_map, ri->cache_info.identity_digest, ri);
|
||||||
ri_old = digestmap_set(rl->identity_map, ri->cache_info.identity_digest, ri);
|
|
||||||
tor_assert(!ri_old);
|
|
||||||
digestmap_set(rl->desc_digest_map, ri->cache_info.signed_descriptor_digest,
|
digestmap_set(rl->desc_digest_map, ri->cache_info.signed_descriptor_digest,
|
||||||
&(ri->cache_info));
|
&(ri->cache_info));
|
||||||
smartlist_add(rl->routers, ri);
|
smartlist_add(rl->routers, ri);
|
||||||
|
@ -1687,7 +1682,6 @@ static void
|
||||||
routerlist_replace(routerlist_t *rl, routerinfo_t *ri_old,
|
routerlist_replace(routerlist_t *rl, routerinfo_t *ri_old,
|
||||||
routerinfo_t *ri_new, int idx, int make_old)
|
routerinfo_t *ri_new, int idx, int make_old)
|
||||||
{
|
{
|
||||||
routerinfo_t *ri_tmp;
|
|
||||||
tor_assert(ri_old != ri_new);
|
tor_assert(ri_old != ri_new);
|
||||||
idx = _routerlist_find_elt(rl->routers, ri_old, idx);
|
idx = _routerlist_find_elt(rl->routers, ri_old, idx);
|
||||||
router_dir_info_changed();
|
router_dir_info_changed();
|
||||||
|
@ -1705,9 +1699,7 @@ routerlist_replace(routerlist_t *rl, routerinfo_t *ri_old,
|
||||||
/* digests don't match; digestmap_set won't replace */
|
/* digests don't match; digestmap_set won't replace */
|
||||||
digestmap_remove(rl->identity_map, ri_old->cache_info.identity_digest);
|
digestmap_remove(rl->identity_map, ri_old->cache_info.identity_digest);
|
||||||
}
|
}
|
||||||
ri_tmp = digestmap_set(rl->identity_map,
|
digestmap_set(rl->identity_map, ri_new->cache_info.identity_digest, ri_new);
|
||||||
ri_new->cache_info.identity_digest, ri_new);
|
|
||||||
tor_assert(!ri_tmp);
|
|
||||||
digestmap_set(rl->desc_digest_map,
|
digestmap_set(rl->desc_digest_map,
|
||||||
ri_new->cache_info.signed_descriptor_digest, &(ri_new->cache_info));
|
ri_new->cache_info.signed_descriptor_digest, &(ri_new->cache_info));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue