]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
don't connection_edge_end() on eof if we're already marked for close,
authorRoger Dingledine <arma@torproject.org>
Fri, 24 Dec 2004 09:43:57 +0000 (09:43 +0000)
committerRoger Dingledine <arma@torproject.org>
Fri, 24 Dec 2004 09:43:57 +0000 (09:43 +0000)
because if we are then it's because we already got an end.

svn:r3223

src/or/connection_edge.c

index 4a5552da698fd5a679d151a364c8a90648bc594f..0c7acca3ab27902609588251a06360878c32a37b 100644 (file)
@@ -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 */