Browse Source

Merge remote-tracking branch 'arma/bug22212'

Nick Mathewson 6 years ago
parent
commit
87db5a6b75
2 changed files with 17 additions and 0 deletions
  1. 8 0
      changes/bug22212-forreal
  2. 9 0
      src/or/connection_or.c

+ 8 - 0
changes/bug22212-forreal

@@ -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.

+ 9 - 0
src/or/connection_or.c

@@ -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;
 }