Merge remote branch 'origin/maint-0.2.1'

This commit is contained in:
Nick Mathewson 2010-09-08 10:28:41 -04:00
commit 669fd05ed8
2 changed files with 14 additions and 6 deletions

7
changes/bug1840 Normal file
View File

@ -0,0 +1,7 @@
o Minor bugfixes:
- Allow handshaking OR connections to take a full KeepalivePeriod
seconds to handshake. Previously, we would close them after
IDLE_OR_CONN_TIMEOUT seconds, as if they were open. This is a
bugfix on 0.2.1.26. Thanks to mingw-san for analysis help. Fixes
bug 1840.

View File

@ -791,12 +791,13 @@ run_connection_housekeeping(int i, time_t now)
"Tor gave up on the connection");
connection_mark_for_close(conn);
conn->hold_open_until_flushed = 1;
} else if (past_keepalive && !connection_state_is_open(conn)) {
/* We never managed to actually get this connection open and happy. */
log_info(LD_OR,"Expiring non-open OR connection to fd %d (%s:%d).",
conn->s,conn->address, conn->port);
connection_mark_for_close(conn);
conn->hold_open_until_flushed = 1;
} else if (!connection_state_is_open(conn)) {
if (past_keepalive) {
/* We never managed to actually get this connection open and happy. */
log_info(LD_OR,"Expiring non-open OR connection to fd %d (%s:%d).",
conn->s,conn->address, conn->port);
connection_mark_for_close(conn);
}
} else if (we_are_hibernating() && !or_conn->n_circuits &&
!buf_datalen(conn->outbuf)) {
/* We're hibernating, there's no circuits, and nothing to flush.*/