mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-13 06:33:44 +01:00
Flag cannibalized circs as used (non-ideal).
Also add some comments.
This commit is contained in:
parent
686fc22259
commit
930fbb2fec
@ -1219,6 +1219,10 @@ pathbias_count_first_hop(origin_circuit_t *circ)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// XXX: Technically, we could make this only count from the *second* hop..
|
||||||
|
// Until we get per-hop MACs or a lower circ failure rate, this might be
|
||||||
|
// better from a false positive POV. Should we s/first_hop/circ_attempt/g?
|
||||||
|
// Then we can control this check from the consensus.
|
||||||
if (circ->cpath->state == CPATH_STATE_AWAITING_KEYS) {
|
if (circ->cpath->state == CPATH_STATE_AWAITING_KEYS) {
|
||||||
/* Help track down the real cause of bug #6475: */
|
/* Help track down the real cause of bug #6475: */
|
||||||
if (circ->has_opened && circ->path_state != PATH_STATE_DID_FIRST_HOP) {
|
if (circ->has_opened && circ->path_state != PATH_STATE_DID_FIRST_HOP) {
|
||||||
|
@ -1160,6 +1160,17 @@ circuit_has_opened(origin_circuit_t *circ)
|
|||||||
{
|
{
|
||||||
control_event_circuit_status(circ, CIRC_EVENT_BUILT, 0);
|
control_event_circuit_status(circ, CIRC_EVENT_BUILT, 0);
|
||||||
|
|
||||||
|
/* Cannibalized circuits count as used for path bias.
|
||||||
|
* (PURPOSE_GENERAL circs especially, since they are
|
||||||
|
* marked dirty and often go unused after preemptive
|
||||||
|
* building). */
|
||||||
|
// XXX: Cannibalized now use RELAY_EARLY, which is visible
|
||||||
|
// to taggers end-to-end! We really need to probe these instead.
|
||||||
|
if (circ->has_opened &&
|
||||||
|
circ->build_state->desired_path_len > DEFAULT_ROUTE_LEN) {
|
||||||
|
circ->path_state = PATH_STATE_USE_SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remember that this circuit has finished building. Now if we start
|
/* Remember that this circuit has finished building. Now if we start
|
||||||
* it building again later (e.g. by extending it), we will know not
|
* it building again later (e.g. by extending it), we will know not
|
||||||
* to consider its build time. */
|
* to consider its build time. */
|
||||||
@ -1411,7 +1422,11 @@ circuit_launch_by_extend_info(uint8_t purpose,
|
|||||||
*
|
*
|
||||||
* Same deal goes for client side introductions. Clients
|
* Same deal goes for client side introductions. Clients
|
||||||
* can be manipulated to connect repeatedly to them
|
* can be manipulated to connect repeatedly to them
|
||||||
* (especially web clients). */
|
* (especially web clients).
|
||||||
|
*
|
||||||
|
* If we decide to probe the initial portion of these circs,
|
||||||
|
* (up to the adversaries final hop), we need to remove this.
|
||||||
|
*/
|
||||||
circ->path_state = PATH_STATE_USE_SUCCEEDED;
|
circ->path_state = PATH_STATE_USE_SUCCEEDED;
|
||||||
/* This must be called before the purpose change */
|
/* This must be called before the purpose change */
|
||||||
pathbias_check_close(circ);
|
pathbias_check_close(circ);
|
||||||
|
Loading…
Reference in New Issue
Block a user