aboutsummaryrefslogtreecommitdiff
path: root/src/or/main.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-08-08 17:47:47 -0700
committerNick Mathewson <nickm@torproject.org>2010-09-27 12:29:43 -0400
commitd830eb366ab037c820b138cfbb8f4bd66986bf42 (patch)
tree07215f942b87e7dcf460f891b624c350982989cc /src/or/main.c
parentec10c044fb3e7b4865a7e9082c5353876e40915f (diff)
downloadtor-d830eb366ab037c820b138cfbb8f4bd66986bf42.tar
tor-d830eb366ab037c820b138cfbb8f4bd66986bf42.tar.gz
Allow hold-open-until-flushed logic to work for bufferevents.
Diffstat (limited to 'src/or/main.c')
-rw-r--r--src/or/main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/or/main.c b/src/or/main.c
index 54c78c32d..b8867852c 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -639,6 +639,11 @@ conn_close_if_marked(int i)
assert_connection_ok(conn, now);
/* assert_all_pending_dns_resolves_ok(); */
+#ifdef USE_BUFFEREVENTS
+ if (conn->bufev && conn->hold_open_until_flushed)
+ return 0;
+#endif
+
log_debug(LD_NET,"Cleaning up connection (fd %d).",conn->s);
if ((conn->s >= 0 || conn->linked_conn) && connection_wants_to_flush(conn)) {
/* s == -1 means it's an incomplete edge connection, or that the socket