Browse Source

Become capable of noticing that we are done sending a directory.

svn:r6659
Nick Mathewson 19 years ago
parent
commit
f1993b8b30
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/or/dirserv.c

+ 2 - 1
src/or/dirserv.c

@@ -1804,6 +1804,7 @@ connection_dirserv_add_dir_bytes_to_outbuf(connection_t *conn)
 
 
   bytes = DIRSERV_BUFFER_MIN - buf_datalen(conn->outbuf);
   bytes = DIRSERV_BUFFER_MIN - buf_datalen(conn->outbuf);
   tor_assert(bytes > 0);
   tor_assert(bytes > 0);
+  tor_assert(conn->cached_dir);
   if (bytes < 8192)
   if (bytes < 8192)
     bytes = 8192;
     bytes = 8192;
   remaining = conn->cached_dir->dir_z_len - conn->cached_dir_offset;
   remaining = conn->cached_dir->dir_z_len - conn->cached_dir_offset;
@@ -1819,7 +1820,7 @@ connection_dirserv_add_dir_bytes_to_outbuf(connection_t *conn)
                             bytes, conn);
                             bytes, conn);
   }
   }
   conn->cached_dir_offset += bytes;
   conn->cached_dir_offset += bytes;
-  if (bytes == (int)conn->cached_dir->dir_z_len) {
+  if (conn->cached_dir_offset == (int)conn->cached_dir->dir_z_len) {
     /* We just wrote the last one; finish up. */
     /* We just wrote the last one; finish up. */
     if (conn->zlib_state) {
     if (conn->zlib_state) {
       connection_write_to_buf_zlib(conn, conn->zlib_state, "", 0, 1);
       connection_write_to_buf_zlib(conn, conn->zlib_state, "", 0, 1);