From de0f72ce2a6e6c7cd8d55cd5c839c523db58da33 Mon Sep 17 00:00:00 2001
From: Roger Dingledine <arma@torproject.org>
Date: Thu, 5 Aug 2004 00:39:23 +0000
Subject: [PATCH] bugfix: when you finish answering a 'resolve' request, hold
 the connection open so you can flush the answer

svn:r2148
---
 src/or/connection_edge.c | 2 ++
 src/or/relay.c           | 1 +
 2 files changed, 3 insertions(+)

diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 29f948ecec..35500309ea 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -379,6 +379,7 @@ static int connection_ap_handshake_process_socks(connection_t *conn) {
       conn->socks_request->has_finished = 1;
       conn->has_sent_end = 1;
       connection_mark_for_close(conn);
+      conn->hold_open_until_flushed = 1;
       return 0;
     }
     answer = htonl(client_dns_lookup_entry(socks->address));
@@ -388,6 +389,7 @@ static int connection_ap_handshake_process_socks(connection_t *conn) {
       conn->socks_request->has_finished = 1;
       conn->has_sent_end = 1;
       connection_mark_for_close(conn);
+      conn->hold_open_until_flushed = 1;
       return 0;
     }
   }
diff --git a/src/or/relay.c b/src/or/relay.c
index 36c3896eb1..e95235f89b 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -581,6 +581,7 @@ connection_edge_process_relay_cell_not_open(
     conn->socks_request->has_finished = 1;
     conn->has_sent_end = 1;
     connection_mark_for_close(conn);
+    conn->hold_open_until_flushed = 1;
     return 0;
   }
 
-- 
GitLab