Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Trac Trac
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Legacy
  • TracTrac
  • Issues
  • #19745

Closed (moved)
(moved)
Open
Created Jul 25, 2016 by teor@teor

Tor2web clients ignore uptime when choosing rendezvous points

Normal Tor clients use LongLivedPorts to decide which circuits need to have good uptime.

But in Tor2web clients, this check is skipped, because of an assumption that one-hop paths are always directory fetches.

This means that when Tor2web chooses rendezvous points, it chooses regardless of their uptime, even if the port is in the list of LongLivesPorts.

In circuit_get_open_circ_or_launch:

  need_uptime = !conn->want_onehop && !conn->use_begindir &&
                smartlist_contains_int_as_string(options->LongLivedPorts,
                                          conn->socks_request->port);

We could fix this by replacing !conn->want_onehop with checking whether the connection purpose is directory or rendezvous.

This is not an issue in the majority of cases, because Tor2web typically uses ports 80 and 443, which aren't on the LongLivedPorts list. (It's also not an issue for Single Onion Services, which call circuit_launch_by_extend_info directly.)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking