aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2002-09-09 04:06:59 +0000
committerRoger Dingledine <arma@torproject.org>2002-09-09 04:06:59 +0000
commit1e4e0244ddf3b7d144d05aef7362443f84939d3f (patch)
tree7b4a1d3b73dfe9a2c793ba8cf0a6158f2ce39044
parentf9f3e2f120cae011a7363db11160fd375b66ce1c (diff)
downloadtor-1e4e0244ddf3b7d144d05aef7362443f84939d3f.tar
tor-1e4e0244ddf3b7d144d05aef7362443f84939d3f.tar.gz
minor race condition
(it seemed to work anyway, but...) svn:r100
-rw-r--r--src/or/connection.c5
-rw-r--r--src/or/connection_ap.c3
2 files changed, 4 insertions, 4 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index 243fd60a5..8b86d253b 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -635,8 +635,9 @@ int connection_consider_sending_sendme(connection_t *conn) {
circ = circuit_get_by_conn(conn);
if(!circ) {
- log(LOG_DEBUG,"connection_consider_sending_sendme(): Bug: no circuit associated with conn. Closing.");
- return -1;
+ /* this can legitimately happen if the destroy has already arrived and torn down the circuit */
+ log(LOG_DEBUG,"connection_consider_sending_sendme(): No circuit associated with conn. Skipping.");
+ return 0;
}
sendme.command = CELL_SENDME;
sendme.length = RECEIVE_WINDOW_INCREMENT;
diff --git a/src/or/connection_ap.c b/src/or/connection_ap.c
index 9d96ae85b..3080fe822 100644
--- a/src/or/connection_ap.c
+++ b/src/or/connection_ap.c
@@ -365,8 +365,7 @@ int connection_ap_finished_flushing(connection_t *conn) {
case AP_CONN_STATE_OPEN:
/* FIXME down the road, we'll clear out circuits that are pending to close */
connection_stop_writing(conn);
- connection_consider_sending_sendme(conn);
- return 0;
+ return connection_consider_sending_sendme(conn);
default:
log(LOG_DEBUG,"Bug: connection_ap_finished_flushing() called in unexpected state.");
return 0;