After #17840 (moved) in 0.2.8.1-alpha, we incorrectly chose an IPv4 address for all DIRIND_ONEHOP directory connections, even if the routerstatus didn't have an IPv4 address.
This likely affected bridge clients with IPv6 bridges.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
isis correctly points out that I have DIRIND_ANONYMOUS connections always using IPv4 addresses. This won't work for IPv6 bridges.
I should use node_get_pref_orport() to get the canonical address of the node that we'll use to connect to it as a guard. This correctly uses IPv6 when it's available and preferred (including when bridge clients only have an IPv6 address), and IPv4 otherwise.
Oh, hang on, we're getting the primary address because we want to put it in an extend_info when creating a circuit to the third hop. So that's OK, but I obviously need a better comment there.
7e5f0bb fixup! Choose the correct address for one-hop connection
on my branch feature18483.
And we don't have a node, so the node_get_prim_orport() function is out.
Oh, hang on, we're getting the primary address because we want to put it in an extend_info when creating a circuit to the third hop. So that's OK, but I obviously need a better comment there.
7e5f0bb fixup! Choose the correct address for one-hop connection
on my branch feature18483.
And we don't have a node, so the node_get_prim_orport() function is out.
Oh, because an extend is happening. This makes more sense now.
This is kinda big for an rc/stable patch. It looks okay and I think we need it and I'm okay with taking it anyway, but I'm also nominating it for my "I-told-you-so" award in case there is a bug here that none of us successfully found.
Initial Questions:
e726459eaf57ffe98c36730af58287229c9531d6: Are we really really sure that every possible case of the big complicated function directory_fetches_from_authorities() should be replaced with !directory_must_use_begindir() ?
e155948d0ac54b3102d6efa3d4a689d8a177f0f4: This really really needs comments in the new code here.
Okay, I need to come back and review the rest of this later. Big branch!
This is kinda big for an rc/stable patch. It looks okay and I think we need it and I'm okay with taking it anyway, but I'm also nominating it for my "I-told-you-so" award in case there is a bug here that none of us successfully found.
You can blame me for a point release.
I also split it into 3 branches so it's easier to review.
Initial Questions:
e726459eaf57ffe98c36730af58287229c9531d6: Are we really really sure that every possible case of the big complicated function directory_fetches_from_authorities() should be replaced with !directory_must_use_begindir() ?
e155948d0ac54b3102d6efa3d4a689d8a177f0f4: This really really needs comments in the new code here.
e155948d0ac54b3102d6efa3d4a689d8a177f0f4 is Choose the correct address for one-hop connections.
This is now 4e0019e1409dffa20ddd6813b873565c0217a877 in my branch bug18921.
I am happy to add comments, but I can't see where they are needed.
Perhaps you meant another commit?