diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-07-30 13:31:27 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-07-30 13:31:27 -0400 |
commit | aadff62745bfa15816ba8c725d9b9cf17abb53d0 (patch) | |
tree | 4e78a012d497fe7b14102347f948047d0c9d90aa /src | |
parent | aa22b9672cd7faa4ea856e54e41cd0d73039ae1a (diff) | |
download | tor-aadff62745bfa15816ba8c725d9b9cf17abb53d0.tar.gz tor-aadff62745bfa15816ba8c725d9b9cf17abb53d0.zip |
Do not autoflush control connections as their outbufs get big
Doing this is no longer necessary, and it leads to weird recursions in
our call graph. Closes ticket 16480.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/connection.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 2cca6e4cf9..ac36578069 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -4206,34 +4206,6 @@ connection_write_to_buf_impl_,(const char *string, size_t len, conn->outbuf_flushlen += buf_datalen(conn->outbuf) - old_datalen; } else { conn->outbuf_flushlen += len; - - /* Should we try flushing the outbuf now? */ - if (conn->in_flushed_some) { - /* Don't flush the outbuf when the reason we're writing more stuff is - * _because_ we flushed the outbuf. That's unfair. */ - return; - } - - if (conn->type == CONN_TYPE_CONTROL && - !connection_is_rate_limited(conn) && - conn->outbuf_flushlen-len < 1<<16 && - conn->outbuf_flushlen >= 1<<16) { - /* just try to flush all of it */ - } else - return; /* no need to try flushing */ - - if (connection_handle_write(conn, 0) < 0) { - if (!conn->marked_for_close) { - /* this connection is broken. remove it. */ - log_warn(LD_BUG, "unhandled error on write for " - "conn (type %d, fd %d); removing", - conn->type, (int)conn->s); - tor_fragile_assert(); - /* do a close-immediate here, so we don't try to flush */ - connection_close_immediate(conn); - } - return; - } } } |