Browse Source

Make connection_write_to_buf_zlib set outbuf_flushlen right.

svn:r6651
Nick Mathewson 19 years ago
parent
commit
337ad6420b
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/or/connection.c

+ 3 - 1
src/or/connection.c

@@ -1602,12 +1602,14 @@ connection_write_to_buf_zlib(connection_t *conn,
                              int done)
 {
   int r;
+  size_t old_datalen;
   if (!data_len)
     return;
   /* if it's marked for close, only allow write if we mean to flush it */
   if (conn->marked_for_close && !conn->hold_open_until_flushed)
     return;
 
+  old_datalen = buf_datalen(conn->outbuf);
   /* XXXX TOO much duplicate code! XXXX012NM */
   CONN_LOG_PROTECT(conn, r = write_to_buf_zlib(
                                 conn->outbuf, state, data, data_len,
@@ -1629,7 +1631,7 @@ connection_write_to_buf_zlib(connection_t *conn,
   }
 
   connection_start_writing(conn);
-  conn->outbuf_flushlen += data_len;
+  conn->outbuf_flushlen += buf_datalen(conn->outbuf) - old_datalen;
 }
 
 /** Return the conn to addr/port that has the most recent