[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #23818 [Core Tor/Tor]: Make v3 single onion services retry failed connections with a 3-hop path
#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@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs