#23818: Make v3 single onion services retry failed connections with a 3-hop path -------------------------------------------------+------------------------- Reporter: teor | Owner: neel Type: defect | Status: | assigned Priority: Medium | Milestone: Tor: | unspecified Component: Core Tor/Tor | Version: Severity: Normal | Resolution: Keywords: prop224, tor-hs, single-onion, | Actual Points: ipv6, 034-triage-20180328, | 034-removed-20180328 | Parent ID: #23493 | Points: Reviewer: | Sponsor: -------------------------------------------------+-------------------------
Comment (by teor): Replying to [comment:10 neel]: > I am interested in this patch. > > Right now, I am looking at commit b4aa8fc3d9 (that you referred to in Comment 1) and saw that in `pick_intro_point()`, you replaced this line > > {{{ > info = extend_info_from_node(node, direct_conn); > }}} > > with this: > > {{{ > info = extend_info_from_node(node, 0); > }}} > > Should I revert this to the former line (the one with `direct_conn`)? We re-wrote a lot of this code in #23588 and #23576. I suggest you: 1. create a branch from the master branch, and merge the latest branches from #23588 and #23576 2. test that the merged branch passes "make test-network-all", including all the IPv6 tests 3. test that the merged branch fails the single-onion-v23-ipv6-md network using "chutney/tools/test-network.sh --flavour single-onion-v23-ipv6-md" Please paste the test results into a ticket, to confirm that you're running the correct tests. Then you can start writing a patch for this ticket based on those branches: As you are writing the patch, you might find some of this removed code useful: https://github.com/torproject/tor/commit/b4aa8fc3d918cc3aea375985c44abd086f91ae7a #diff-b2d25162bf60cfbeb456effc403d3282L1540 https://github.com/torproject/tor/commit/b4aa8fc3d918cc3aea375985c44abd086f91ae7a #diff-b2d25162bf60cfbeb456effc403d3282L1557 But remember, that old code is buggy and incomplete! 4. write code that matches the v2 single onion service behaviour for intro point selection: https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L4133 5. and intro point connection: https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L3031 6. write code that matches the v2 single onion service behaviour for rend point connection: https://github.com/torproject/tor/blob/fe9f58514349c9d25b48ae29c87d8aaf065d0931/src/feature/rend/rendservice.c#L2089 7. write a comment that explains the single onion service behaviour for rend point retries (which just use a standard 3-hop connection): https://github.com/torproject/tor/blob/422abd4fa3c2c9c10f4e7f83eced7416785e89c4/src/feature/rend/rendservice.c#L2994 8. when you have implemented the 3-hop fallback feature, your code will pass on the single-onion-v23-ipv6-md network, and we can make that network part of the standard test suite (#27251). I suggest that you open child tickets for steps 1-3, 4-5, and 6-8. Otherwise, this ticket will become very large and hard to read, -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23818#comment:11> Tor Bug Tracker & Wiki <https://trac.torproject.org/> The Tor Project: anonymity online
_______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs