mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
Merge commit 'bb9b4c37f8e7f5cf78918f382e90d8b11ff42551' into maint-0.2.4
This commit is contained in:
commit
411c622906
5
changes/bug11553
Normal file
5
changes/bug11553
Normal file
@ -0,0 +1,5 @@
|
||||
o Minor features:
|
||||
- When we run out of usable circuit IDs on a channel, log only one
|
||||
warning for the whole channel, and include a description of
|
||||
how many circuits there were on the channel. Fix for part of ticket
|
||||
#11553.
|
@ -148,6 +148,8 @@ struct channel_s {
|
||||
ENUM_BF(circ_id_type_t) circ_id_type:2;
|
||||
/** DOCDOC*/
|
||||
unsigned wide_circ_ids:1;
|
||||
/** Have we logged a warning about circID exhaustion on this channel? */
|
||||
unsigned warned_circ_ids_exhausted:1;
|
||||
/*
|
||||
* Which circ_id do we try to use next on this connection? This is
|
||||
* always in the range 0..1<<15-1.
|
||||
|
@ -127,7 +127,14 @@ get_unique_circ_id_by_chan(channel_t *chan)
|
||||
/* Make sure we don't loop forever if all circ_id's are used. This
|
||||
* matters because it's an external DoS opportunity.
|
||||
*/
|
||||
log_warn(LD_CIRC,"No unused circ IDs. Failing.");
|
||||
if (! chan->warned_circ_ids_exhausted) {
|
||||
chan->warned_circ_ids_exhausted = 1;
|
||||
log_warn(LD_CIRC,"No unused circIDs found on channel %s wide "
|
||||
"circID support, with %u inbound and %u outbound circuits. "
|
||||
"Failing a circuit.",
|
||||
chan->wide_circ_ids ? "with" : "without",
|
||||
chan->num_p_circuits, chan->num_n_circuits);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
test_circ_id |= high_bit;
|
||||
|
Loading…
Reference in New Issue
Block a user