From: Roger Dingledine Date: Tue, 7 Dec 2004 16:37:32 +0000 (+0000) Subject: fix the other half of the pipe race X-Git-Tag: tor-0.0.9rc7~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=012255fe60af64f89d094da86e99534c94b63c34;p=thirdparty%2Ftor.git fix the other half of the pipe race svn:r3111 --- diff --git a/src/or/connection.c b/src/or/connection.c index 4f076c3d64..2669f074d2 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -236,6 +236,8 @@ void connection_about_to_close_connection(connection_t *conn) if (conn->socks_request->has_finished == 0) { log_fn(LOG_INFO,"Cleaning up AP -- sending socks reject."); conn->hold_open_until_flushed = 1; + /* XXX this socks_reply never gets sent, since conn + * gets removed right after this function finishes. */ connection_ap_handshake_socks_reply(conn, NULL, 0, -1); conn->socks_request->has_finished = 1; } else { diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 49d91f855a..53e7b68c81 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -45,9 +45,9 @@ int connection_edge_reached_eof(connection_t *conn) { /* only mark it if not already marked. it's possible to * get the 'end' right around when the client hangs up on us. */ connection_mark_for_close(conn); + conn->hold_open_until_flushed = 1; /* just because we shouldn't read + doesn't mean we shouldn't write */ } - conn->hold_open_until_flushed = 1; /* just because we shouldn't read - doesn't mean we shouldn't write */ return 0; #endif }