[tor-bugs] #21345 [Core Tor/Tor]: Do relays count dir reqs as completed before they're complete?
Tor Bug Tracker & Wiki
blackhole at torproject.org
Mon Jan 30 06:14:49 UTC 2017
#21345: Do relays count dir reqs as completed before they're complete?
--------------------------+------------------------------------
Reporter: arma | Owner:
Type: task | Status: new
Priority: Medium | Milestone: Tor: 0.3.1.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
--------------------------+------------------------------------
Comment (by arma):
Ah ha. Current theory for why it works as intended:
geoip_change_dirreq_state() has to be called in every intermediate step
before DIRREQ_CHANNEL_BUFFER_FLUSHED, in order, else it will never run the
clauses at the end:
{{{
if (new_state == DIRREQ_IS_FOR_NETWORK_STATUS)
return;
if (new_state - 1 != ent->state)
return;
ent->state = new_state;
}}}
So that's a call with new_state DIRREQ_FLUSHING_DIR_CONN_FINISHED, and
another with new_state DIRREQ_END_CELL_SENT, and another with new_state
DIRREQ_CIRC_QUEUE_FLUSHED, and only then will it care when it receives a
call with new_state DIRREQ_CHANNEL_BUFFER_FLUSHED. Sneaky.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/21345#comment:5>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list