Browse Source

forward-port r13799 and the 0.2.0.21-rc changelog

svn:r13808
Roger Dingledine 16 years ago
parent
commit
5bf0a01011
3 changed files with 30 additions and 9 deletions
  1. 19 0
      ChangeLog
  2. 1 0
      doc/TODO
  3. 10 9
      src/or/buffers.c

+ 19 - 0
ChangeLog

@@ -9,6 +9,25 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
       Bugfix on 0.2.0.20-rc.
 
 
+Changes in version 0.2.0.21-rc - 2008-03-02
+  o Major bugfixes:
+    - The control port should declare that it requires password auth
+      when HashedControlSessionPassword is set too. Patch from Matt Edman;
+      bugfix on 0.2.0.20-rc. Fixes bug 615.
+    - Downgrade assert in connection_buckets_decrement() to a log message.
+      This may help us solve bug 614, and in any case will make its
+      symptoms less severe. Bugfix on 0.2.0.20-rc. Reported by fredzupy.
+    - We were sometimes miscounting the number of bytes read from the
+      network, causing our rate limiting to not be followed exactly.
+      Bugfix on 0.2.0.16-alpha. Reported by lodger.
+
+  o Minor bugfixes:
+    - Fix compilation with OpenSSL 0.9.8 and 0.9.8a.  All other supported
+      OpenSSL versions should have been working fine.  Diagnosis and patch
+      from lodger, Karsten Loesing and Sebastian Hahn.  Fixes bug 616.
+      Bugfix on 0.2.0.20-rc.
+
+
 Changes in version 0.2.0.20-rc - 2008-02-24
   Tor 0.2.0.20-rc is the first release candidate for the 0.2.0 series. It
   makes more progress towards normalizing Tor's TLS handshake, makes

+ 1 - 0
doc/TODO

@@ -234,6 +234,7 @@ Planned for 0.2.1.x:
 
   - get rid of the v1 directory stuff (making, serving, and caching).
     - perhaps replace it with a "this is a tor server" stock webpage.
+  - even clients run rep_hist_load_mtbf_data(). this wastes memory.
 
   - bridge communities with local bridge authorities:
     - clients who have a password configured decide to ask their bridge

+ 10 - 9
src/or/buffers.c

@@ -635,13 +635,13 @@ read_to_buf(int s, size_t at_most, buf_t *buf, int *reached_eof)
     check();
     if (r < 0)
       return r; /* Error */
-    else if ((size_t)r < readlen) { /* eof, block, or no more to read. */
-      tor_assert(r+total_read < INT_MAX);
-      return (int)(r + total_read);
-    }
+    tor_assert(total_read+r < INT_MAX);
     total_read += r;
+    if ((size_t)r < readlen) { /* eof, block, or no more to read. */
+      break;
+    }
   }
-  return r;
+  return (int)total_read;
 }
 
 /** As read_to_buf, but reads from a TLS connection, and returns a TLS
@@ -689,11 +689,12 @@ read_to_buf_tls(tor_tls_t *tls, size_t at_most, buf_t *buf)
     check();
     if (r < 0)
       return r; /* Error */
-    else if ((size_t)r < readlen) /* eof, block, or no more to read. */
-      return r;
-    total_read += r;
+    tor_assert(total_read+r < INT_MAX);
+     total_read += r;
+    if ((size_t)r < readlen) /* eof, block, or no more to read. */
+      break;
   }
-  return r;
+  return (int)total_read;
 }
 
 /** Helper for flush_buf(): try to write <b>sz</b> bytes from chunk