From: Roger Dingledine Date: Wed, 24 Nov 2004 06:41:58 +0000 (+0000) Subject: don't process marked-for-close conns further. X-Git-Tag: debian-version-0.0.8+0.0.9rc2-1~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=83e7043eb8792bd8addafdf37b13581301bc6020;p=thirdparty%2Ftor.git don't process marked-for-close conns further. (fix assert trigger -- if we're lucky.) svn:r2975 --- diff --git a/src/or/connection.c b/src/or/connection.c index 3a168d3687..5c21c7952c 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -850,14 +850,19 @@ loop_again: if (connection_process_inbuf(conn, 0) < 0) { return -1; } - if (connection_is_reading(conn) && !conn->inbuf_reached_eof) + if (!conn->marked_for_close && + connection_is_reading(conn) && + !conn->inbuf_reached_eof) goto loop_again; /* try reading again, in case more is here now */ } /* one last try, packaging partial cells and all. */ - if (connection_process_inbuf(conn, 1) < 0) { + if (!conn->marked_for_close && + connection_process_inbuf(conn, 1) < 0) { return -1; } - if (conn->inbuf_reached_eof && connection_reached_eof(conn) < 0) { + if (!conn->marked_for_close && + conn->inbuf_reached_eof && + connection_reached_eof(conn) < 0) { return -1; } return 0;