Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
George Kadianakis
Tor
Commits
e2394771
Commit
e2394771
authored
Jul 01, 2021
by
George Kadianakis
Browse files
Use L2 vanguards during path selection
Co-authored-by:
Mike Perry
<
mikeperry-git@torproject.org
>
parent
314a6b42
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/core/or/circuitbuild.c
View file @
e2394771
...
...
@@ -2259,8 +2259,9 @@ middle_node_must_be_vanguard(const or_options_t *options,
return
0
;
}
/* If we have sticky L2 nodes, and this is an L2 pick, use vanguards */
if
(
options
->
HSLayer2Nodes
&&
cur_len
==
1
)
{
/* If we are a hidden service circuit, always use either vanguards-lite
* or HSLayer2Nodes for 2nd hop. */
if
(
cur_len
==
1
)
{
return
1
;
}
...
...
@@ -2284,7 +2285,8 @@ pick_vanguard_middle_node(const or_options_t *options,
/* Pick the right routerset based on the current hop */
if
(
cur_len
==
1
)
{
vanguard_routerset
=
options
->
HSLayer2Nodes
;
vanguard_routerset
=
options
->
HSLayer2Nodes
?
options
->
HSLayer2Nodes
:
get_layer2_guards
();
}
else
if
(
cur_len
==
2
)
{
vanguard_routerset
=
options
->
HSLayer3Nodes
;
}
else
{
...
...
@@ -2293,6 +2295,10 @@ pick_vanguard_middle_node(const or_options_t *options,
return
NULL
;
}
if
(
BUG
(
!
vanguard_routerset
))
{
return
NULL
;
}
node
=
pick_restricted_middle_node
(
flags
,
vanguard_routerset
,
options
->
ExcludeNodes
,
excluded
,
cur_len
+
1
);
...
...
src/core/or/circuituse.c
View file @
e2394771
...
...
@@ -2022,16 +2022,12 @@ circuit_is_hs_v3(const circuit_t *circ)
int
circuit_should_use_vanguards
(
uint8_t
purpose
)
{
const
or_options_t
*
options
=
get_options
();
/* Only hidden service circuits use vanguards */
if
(
!
circuit_purpose_is_hidden_service
(
purpose
))
return
0
;
/* Pinned middles are effectively vanguards */
if
(
options
->
HSLayer2Nodes
||
options
->
HSLayer3Nodes
)
/* All hidden service circuits use either vanguards or
* vanguards-lite. */
if
(
circuit_purpose_is_hidden_service
(
purpose
))
return
1
;
/* Everything else is a normal circuit */
return
0
;
}
...
...
src/feature/nodelist/networkstatus.c
View file @
e2394771
...
...
@@ -1699,6 +1699,9 @@ notify_after_networkstatus_changes(void)
channelpadding_new_consensus_params
(
c
);
circpad_new_consensus_params
(
c
);
router_new_consensus_params
(
c
);
/* Maintenance of our L2 guard list */
maintain_layer2_guards
();
}
/** Copy all the ancillary information (like router download status and so on)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment