diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-08-08 17:47:47 -0700 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-09-27 12:29:43 -0400 |
commit | d830eb366ab037c820b138cfbb8f4bd66986bf42 (patch) | |
tree | 07215f942b87e7dcf460f891b624c350982989cc /src/or/connection.c | |
parent | ec10c044fb3e7b4865a7e9082c5353876e40915f (diff) | |
download | tor-d830eb366ab037c820b138cfbb8f4bd66986bf42.tar.gz tor-d830eb366ab037c820b138cfbb8f4bd66986bf42.zip |
Allow hold-open-until-flushed logic to work for bufferevents.
Diffstat (limited to 'src/or/connection.c')
-rw-r--r-- | src/or/connection.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index ff5c4c04ae..6665809bc2 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -2661,14 +2661,17 @@ static void connection_handle_write_cb(struct bufferevent *bufev, void *arg) { connection_t *conn = arg; - (void) bufev; + struct evbuffer *output; if (connection_flushed_some(conn)<0) { connection_mark_for_close(conn); return; } - if (!connection_wants_to_flush(conn)) { + output = bufferevent_get_output(bufev); + if (!evbuffer_get_length(output)) { connection_finished_flushing(conn); + if (conn->marked_for_close && conn->hold_open_until_flushed) + conn->hold_open_until_flushed = 0; } } |