mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Make all begindir or one-hop circuits internal
This solves bug 5283, where client traffic could get sent over the same circuit as an anonymized connection to a directory, even if that circuit used an exit node unsuitable for clients. By marking the directory connection as needs_internal, we ensure that the (non-internal!) client-traffic connection won't be sent over the same circuit.
This commit is contained in:
+7
-1
@@ -1229,7 +1229,13 @@ circuit_get_open_circ_or_launch(edge_connection_t *conn,
|
||||
need_uptime = !conn->want_onehop && !conn->use_begindir &&
|
||||
smartlist_string_num_isin(options->LongLivedPorts,
|
||||
conn->socks_request->port);
|
||||
need_internal = desired_circuit_purpose != CIRCUIT_PURPOSE_C_GENERAL;
|
||||
|
||||
if (desired_circuit_purpose != CIRCUIT_PURPOSE_C_GENERAL)
|
||||
need_internal = 1;
|
||||
else if (conn->use_begindir || conn->want_onehop)
|
||||
need_internal = 1;
|
||||
else
|
||||
need_internal = 0;
|
||||
|
||||
circ = circuit_get_best(conn, 1, desired_circuit_purpose,
|
||||
need_uptime, need_internal);
|
||||
|
||||
Reference in New Issue
Block a user