diff options
author | Roger Dingledine <arma@torproject.org> | 2002-09-09 04:06:59 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2002-09-09 04:06:59 +0000 |
commit | 1e4e0244ddf3b7d144d05aef7362443f84939d3f (patch) | |
tree | 7b4a1d3b73dfe9a2c793ba8cf0a6158f2ce39044 /src/or | |
parent | f9f3e2f120cae011a7363db11160fd375b66ce1c (diff) | |
download | tor-1e4e0244ddf3b7d144d05aef7362443f84939d3f.tar tor-1e4e0244ddf3b7d144d05aef7362443f84939d3f.tar.gz |
minor race condition
(it seemed to work anyway, but...)
svn:r100
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/connection.c | 5 | ||||
-rw-r--r-- | src/or/connection_ap.c | 3 |
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; |