From 83e7043eb8792bd8addafdf37b13581301bc6020 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Wed, 24 Nov 2004 06:41:58 +0000 Subject: don't process marked-for-close conns further. (fix assert trigger -- if we're lucky.) svn:r2975 --- src/or/connection.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/or') diff --git a/src/or/connection.c b/src/or/connection.c index 3a168d368..5c21c7952 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; -- cgit v1.2.3