summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2009-08-10 04:17:32 -0400
committerRoger Dingledine <arma@torproject.org>2009-08-10 04:17:32 -0400
commitafc9da72874b0e443843ef25090a97fab91530ec (patch)
tree816fd9921a248bb5ce0fb8f96618a2044c5fc7a3
parent2e1ac18ed19eaa65ac94ed9d1d72c7c209f90bf7 (diff)
parente50b7768b94bbcccef77be255920e3aac80a9555 (diff)
downloadtor-afc9da72874b0e443843ef25090a97fab91530ec.tar.gz
tor-afc9da72874b0e443843ef25090a97fab91530ec.zip
Merge branch 'maint-0.2.1'
-rw-r--r--ChangeLog8
-rw-r--r--src/or/relay.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b9aa3c06f..a5cee13c4f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -53,6 +53,14 @@ Changes in version 0.2.2.1-alpha - 2009-0?-??
Changes in version 0.2.1.20 - 2009-??-??
+ o Major bugfixes:
+ - Send circuit or stream sendme cells when our window has decreased
+ by 100 cells, not when it has decreased by 101 cells. Bug uncovered
+ by Karsten when testing the "reduce circuit window" performance
+ patch. Bugfix on the 54th commit on Tor -- from July 2002,
+ before the release of Tor 0.0.0. This is the new winner of the
+ oldest-bug prize.
+
o New directory authorities:
- Set up urras (run by Jacob Appelbaum) as the seventh v3 directory
authority.
diff --git a/src/or/relay.c b/src/or/relay.c
index 0c5a96561b..76577848f3 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -1379,7 +1379,7 @@ connection_edge_consider_sending_sendme(edge_connection_t *conn)
return;
}
- while (conn->deliver_window < STREAMWINDOW_START - STREAMWINDOW_INCREMENT) {
+ while (conn->deliver_window <= STREAMWINDOW_START - STREAMWINDOW_INCREMENT) {
log_debug(conn->cpath_layer?LD_APP:LD_EXIT,
"Outbuf %d, Queuing stream sendme.",
(int)conn->_base.outbuf_flushlen);
@@ -1493,7 +1493,7 @@ circuit_consider_sending_sendme(circuit_t *circ, crypt_path_t *layer_hint)
{
// log_fn(LOG_INFO,"Considering: layer_hint is %s",
// layer_hint ? "defined" : "null");
- while ((layer_hint ? layer_hint->deliver_window : circ->deliver_window) <
+ while ((layer_hint ? layer_hint->deliver_window : circ->deliver_window) <=
CIRCWINDOW_START - CIRCWINDOW_INCREMENT) {
log_debug(LD_CIRC,"Queuing circuit sendme.");
if (layer_hint)