mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Bug 25505: Check circuitmux queues before padding.
This commit is contained in:
parent
1d8957129b
commit
ae1aea4cc4
3
changes/bug25505
Normal file
3
changes/bug25505
Normal file
@ -0,0 +1,3 @@
|
||||
o Minor bugfixes (netflow padding):
|
||||
- Ensure circuitmux queues are empty before scheduling or sending padding.
|
||||
Fixes bug 25505; bugfix on 0.3.1.1-alpha.
|
@ -379,7 +379,8 @@ channelpadding_send_padding_cell_for_callback(channel_t *chan)
|
||||
chan->pending_padding_callback = 0;
|
||||
|
||||
if (monotime_coarse_is_zero(&chan->next_padding_time) ||
|
||||
chan->has_queued_writes(chan)) {
|
||||
chan->has_queued_writes(chan) ||
|
||||
(chan->cmux && circuitmux_num_cells(chan->cmux))) {
|
||||
/* We must have been active before the timer fired */
|
||||
monotime_coarse_zero(&chan->next_padding_time);
|
||||
return;
|
||||
@ -755,7 +756,11 @@ channelpadding_decide_to_pad_channel(channel_t *chan)
|
||||
return CHANNELPADDING_WONTPAD;
|
||||
}
|
||||
|
||||
if (!chan->has_queued_writes(chan)) {
|
||||
/* There should always be a cmux on the circuit. After that,
|
||||
* only schedule padding if there are no queued writes and no
|
||||
* queued cells in circuitmux queues. */
|
||||
if (chan->cmux && !chan->has_queued_writes(chan) &&
|
||||
!circuitmux_num_cells(chan->cmux)) {
|
||||
int is_client_channel = 0;
|
||||
|
||||
if (CHANNEL_IS_CLIENT(chan, options)) {
|
||||
|
Loading…
Reference in New Issue
Block a user