--- /dev/null
+ 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.
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;
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)) {