mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
bugfix: a circ can't be youngest if it's still connecting to the first hop
svn:r255
This commit is contained in:
parent
f54186aa91
commit
59e70bcae6
@ -255,15 +255,16 @@ circuit_t *circuit_get_newest_by_edge_type(char edge_type) {
|
||||
|
||||
for(circ=global_circuitlist;circ;circ = circ->next) {
|
||||
if(edge_type == EDGE_AP && (!circ->p_conn || circ->p_conn->type == CONN_TYPE_AP)) {
|
||||
if(!bestcirc ||
|
||||
(circ->state == CIRCUIT_STATE_OPEN && bestcirc->timestamp_created < circ->timestamp_created)) {
|
||||
if(circ->state == CIRCUIT_STATE_OPEN && (!bestcirc ||
|
||||
bestcirc->timestamp_created < circ->timestamp_created)) {
|
||||
log(LOG_DEBUG,"circuit_get_newest_by_edge_type(): Choosing n_aci %d.", circ->n_aci);
|
||||
assert(circ->n_aci);
|
||||
bestcirc = circ;
|
||||
}
|
||||
}
|
||||
if(edge_type == EDGE_EXIT && (!circ->n_conn || circ->n_conn->type == CONN_TYPE_EXIT)) {
|
||||
if(!bestcirc ||
|
||||
(circ->state == CIRCUIT_STATE_OPEN && bestcirc->timestamp_created < circ->timestamp_created))
|
||||
if(circ->state == CIRCUIT_STATE_OPEN && (!bestcirc ||
|
||||
bestcirc->timestamp_created < circ->timestamp_created))
|
||||
bestcirc = circ;
|
||||
}
|
||||
}
|
||||
@ -547,7 +548,7 @@ void circuit_about_to_close_connection(connection_t *conn) {
|
||||
* down the road, maybe we'll consider that eof doesn't mean can't-write
|
||||
*/
|
||||
circuit_t *circ;
|
||||
connection_t *prevconn, *tmpconn;
|
||||
connection_t *prevconn;
|
||||
|
||||
if(!connection_speaks_cells(conn)) {
|
||||
/* it's an edge conn. need to remove it from the linked list of
|
||||
|
@ -258,7 +258,6 @@ void command_process_data_cell(cell_t *cell, connection_t *conn) {
|
||||
|
||||
void command_process_destroy_cell(cell_t *cell, connection_t *conn) {
|
||||
circuit_t *circ;
|
||||
connection_t *tmpconn;
|
||||
|
||||
circ = circuit_get_by_aci_conn(cell->aci, conn);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user