diff options
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r-- | src/or/connection_edge.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 6a65984774..dfe5d57036 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -118,6 +118,10 @@ int connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ, connection if(conn->type == CONN_TYPE_EXIT && relay_command == RELAY_COMMAND_END) { log_fn(LOG_INFO,"Exit got end before we're connected. Marking for close."); conn->marked_for_close = 1; + if(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); + } } else { log_fn(LOG_DEBUG,"Got an unexpected relay cell, not in 'open' state. Dropping."); } |