[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #1776 [Tor Client]: Allow regular relays to be used as bridges
#1776: Allow regular relays to be used as bridges
-------------------------+--------------------------------------------------
Reporter: Sebastian | Owner: arma
Type: defect | Status: reopened
Priority: normal | Milestone: Tor: 0.2.2.x-final
Component: Tor Client | Version:
Resolution: | Keywords:
Parent: |
-------------------------+--------------------------------------------------
Comment(by arma):
We're baaack!
bug1776_v3 introduced an assert that could trigger on directory
authorities.
The issue is that router_get_by_digest(id_digest) and
sdmap_get(routerlist->desc_digest_map,
router->cache_info.signed_descriptor_digest) are deliberately not kept in
sync if you're a directory cache. That's because the desc_digest_map
includes descriptors that are in old_routers, that is, the descriptors
that are cached but not in the currently recommended routerlist.
The assert should only be triggerable on directory authorities, since
other Tors avoid downloading something they already have: e.g.
router_get_by_descriptor_digest() in
update_consensus_router_descriptor_downloads() looks at
routerlist->desc_digest_map, which is what we want.
The logic is going to be messy here, because it's not just a matter of
"drop or don't drop if !old_router" -- we want to drop the new descriptor
if desc_digest_map already has it and the copy we have (whether in
routerlist or old_routers) is not worth replacing.
Probably we'll be happier working out the logic, using intermediate
variables, rather than trying to cram it into one awful if. For example, a
truth table based on all the variables would help us sort out what we
actually want to *do* in each case.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/1776#comment:28>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs