summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-12-24 09:43:57 +0000
committerRoger Dingledine <arma@torproject.org>2004-12-24 09:43:57 +0000
commit3a572fcffa4609a76e0d21c1e73f578287e7afc8 (patch)
tree218a13e46455b8a9b610c53c85d55fdfc7f7374b
parentebdfaaf4770351b0f2cdef862e0e9907fc84e838 (diff)
downloadtor-3a572fcffa4609a76e0d21c1e73f578287e7afc8.tar.gz
tor-3a572fcffa4609a76e0d21c1e73f578287e7afc8.zip
don't connection_edge_end() on eof if we're already marked for close,
because if we are then it's because we already got an end. svn:r3223
-rw-r--r--src/or/connection_edge.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 4a5552da69..0c7acca3ab 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -40,10 +40,10 @@ int connection_edge_reached_eof(connection_t *conn) {
return 0;
}
log_fn(LOG_INFO,"conn (fd %d) reached eof (stream size %d). Closing.", conn->s, (int)conn->stream_size);
- connection_edge_end(conn, END_STREAM_REASON_DONE, conn->cpath_layer);
if (!conn->marked_for_close) {
/* only mark it if not already marked. it's possible to
* get the 'end' right around when the client hangs up on us. */
+ connection_edge_end(conn, END_STREAM_REASON_DONE, conn->cpath_layer);
connection_mark_for_close(conn);
conn->hold_open_until_flushed = 1; /* just because we shouldn't read
doesn't mean we shouldn't write */