[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[or-cvs] respond to nick"s question about link padding



Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/home/arma/work/onion/cvs/src/or

Modified Files:
	connection.c 
Log Message:
respond to nick's question about link padding
(nick: note that link padding is currently disabled)


Index: connection.c
===================================================================
RCS file: /home/or/cvsroot/src/or/connection.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- connection.c	11 Mar 2003 21:38:38 -0000	1.40
+++ connection.c	12 Mar 2003 12:06:54 -0000	1.41
@@ -481,6 +481,19 @@
 
   /* ???? 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);