mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Refine extend_info_for_node's "enough info" check once again.
In d1874b4339
, we adjusted this check so that we insist on
using routerinfos for bridges. That's almost correct... but if we
have a bridge that is also a regular relay, then we should use
insist on its routerinfo when connecting to it as a bridge
(directly), and be willing to use its microdescriptor when
connecting to it elsewhere in our circuits.
This bug is a likely cause of some (all?) of the (exit_ei == NULL)
failures we've been seeing.
Fixes bug 25691; bugfix on 0.3.3.4-alpha
This commit is contained in:
parent
46795a7be6
commit
2d6914e391
6
changes/bug25691
Normal file
6
changes/bug25691
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor bugfixes (client):
|
||||
- When using a listed relay as a bridge, and also using
|
||||
microdescriptors, and considering that relay as a non-bridge in
|
||||
a circuit, consider its microdescriptor as a valid source of information
|
||||
about that relay. Fixes bug 25691; bugfix on 0.3.3.4-alpha.
|
||||
|
@ -2860,7 +2860,7 @@ extend_info_from_node(const node_t *node, int for_direct_connect)
|
||||
const int is_bridge = node_is_a_configured_bridge(node);
|
||||
const int we_use_mds = we_use_microdescriptors_for_circuits(get_options());
|
||||
|
||||
if (is_bridge || !we_use_mds) {
|
||||
if ((is_bridge && for_direct_connect) || !we_use_mds) {
|
||||
/* We need an ri in this case. */
|
||||
if (!node->ri)
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user