Merge remote-tracking branch 'arma/bug22212'

This commit is contained in:
Nick Mathewson 2018-02-06 11:36:13 -05:00
commit 87db5a6b75
2 changed files with 17 additions and 0 deletions

8
changes/bug22212-forreal Normal file
View File

@ -0,0 +1,8 @@
o Major bugfixes:
- Stop adding unneeded channel padding right after we finish flushing
to a connection that has been trying to flush for many seconds.
Instead, treat all partial or complete flushes as activity on the
channel, which will defer the time until we need to add padding.
This fix should resolve confusing and scary log messages like
"Channel padding timeout scheduled 221453ms in the past." Fixes
bug 22212; bugfix on 0.3.1.1-alpha.

View File

@ -592,6 +592,10 @@ connection_or_flushed_some(or_connection_t *conn)
{
size_t datalen;
/* Update the channel's active timestamp if there is one */
if (conn->chan)
channel_timestamp_active(TLS_CHAN_TO_BASE(conn->chan));
/* If we're under the low water mark, add cells until we're just over the
* high water mark. */
datalen = connection_get_outbuf_len(TO_CONN(conn));
@ -652,6 +656,11 @@ connection_or_finished_flushing(or_connection_t *conn)
tor_fragile_assert();
return -1;
}
/* Update the channel's active timestamp if there is one */
if (conn->chan)
channel_timestamp_active(TLS_CHAN_TO_BASE(conn->chan));
return 0;
}