瀏覽代碼

bugfix: when you finish answering a 'resolve' request, hold the
connection open so you can flush the answer


svn:r2148

Roger Dingledine 21 年之前
父節點
當前提交
de0f72ce2a
共有 2 個文件被更改,包括 3 次插入0 次删除
  1. 2 0
      src/or/connection_edge.c
  2. 1 0
      src/or/relay.c

+ 2 - 0
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;
     }
   }

+ 1 - 0
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;
   }