Loading changes/bug11553 0 → 100644 +5 −0 Original line number Diff line number Diff line 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. src/or/channel.h +2 −0 Original line number Diff line number Diff line Loading @@ -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. Loading src/or/circuitbuild.c +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
changes/bug11553 0 → 100644 +5 −0 Original line number Diff line number Diff line 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.
src/or/channel.h +2 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
src/or/circuitbuild.c +8 −1 Original line number Diff line number Diff line Loading @@ -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