Browse Source

respond to nick's question about link padding
(nick: note that link padding is currently disabled)


svn:r178

Roger Dingledine 22 years ago
parent
commit
c5ed007ac8
1 changed files with 13 additions and 0 deletions
  1. 13 0
      src/or/connection.c

+ 13 - 0
src/or/connection.c

@@ -481,6 +481,19 @@ void connection_send_cell(connection_t *conn) {
 
   /* ???? If we might not have added a cell above, why are we
    * ???? increasing outbuf_flushlen? -NM */
+  /* The connection_write_cell_to_buf() call doesn't increase the flushlen
+   * (if link padding is on). So if there isn't a whole cell waiting-but-
+   * not-yet-flushed, we add a padding cell. Thus in any case the gap between
+   * outbuf_datalen and outbuf_flushlen is at least sizeof(cell_t). -RD
+   */
+  /* XXXX actually, there are some subtle bugs lurking in here. They
+   * have to do with the fact that we don't handle connection failure
+   * cleanly. Sometimes we mark things to be closed later. Inside
+   * connection_write_cell_to_buf, it returns successfully without
+   * writing if the connection has been marked for close. We need to
+   * look at all our failure cases more carefully and make sure they do
+   * the right thing.
+   */
   conn->outbuf_flushlen += sizeof(cell_t); /* instruct it to send a cell */
   connection_start_writing(conn);