aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
Diffstat (limited to 'src/or')
-rw-r--r--src/or/connection.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index 2644a60e6..7c51558d2 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -682,6 +682,10 @@ int connection_send_destroy(uint16_t circ_id, connection_t *conn) {
if(!connection_speaks_cells(conn)) {
log_fn(LOG_INFO,"CircID %d: At an edge. Marking connection for close.",
circ_id);
+ if(conn->type == CONN_TYPE_EXIT && conn->state == EXIT_CONN_STATE_RESOLVING) {
+ log_fn(LOG_INFO,"...and informing resolver we don't want the answer anymore.");
+ dns_cancel_pending_resolve(conn->address, conn);
+ }
if(connection_edge_end(conn, END_STREAM_REASON_DESTROY, conn->cpath_layer) < 0)
log_fn(LOG_WARN,"1: I called connection_edge_end redundantly.");
/* if they already sent a destroy, they know. XXX can just close? */