diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-01-12 00:59:29 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-01-12 00:59:29 -0500 |
commit | c9dd2d1a6ad2684442abb7a31e29b0998aaf605c (patch) | |
tree | 644e9bb4fef1007864c79d58e4ba302efa88384b /src/or/dns.c | |
parent | b08cfc65a78527cc97f4d0aeff3217d5f1c93e08 (diff) | |
parent | 905287415b834db1a92205e8436f66a3b2d6846c (diff) | |
download | tor-c9dd2d1a6ad2684442abb7a31e29b0998aaf605c.tar.gz tor-c9dd2d1a6ad2684442abb7a31e29b0998aaf605c.zip |
Merge remote-tracking branch 'public/bug14129_024' into maint-0.2.5
Diffstat (limited to 'src/or/dns.c')
-rw-r--r-- | src/or/dns.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/or/dns.c b/src/or/dns.c index a9c4318651..b55bf7384e 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -558,6 +558,8 @@ purge_expired_resolves(time_t now) /* Connections should only be pending if they have no socket. */ tor_assert(!SOCKET_OK(pend->conn->base_.s)); pendconn = pend->conn; + /* Prevent double-remove */ + pendconn->base_.state = EXIT_CONN_STATE_RESOLVEFAILED; if (!pendconn->base_.marked_for_close) { connection_edge_end(pendconn, END_STREAM_REASON_TIMEOUT); circuit_detach_stream(circuit_get_by_edge_conn(pendconn), pendconn); @@ -1133,7 +1135,9 @@ connection_dns_remove(edge_connection_t *conn) return; /* more are pending */ } } - tor_assert(0); /* not reachable unless onlyconn not in pending list */ + log_warn(LD_BUG, "Connection (fd "TOR_SOCKET_T_FORMAT") was not waiting " + "for a resolve of %s, but we tried to remove it.", + conn->base_.s, escaped_safe_str(conn->base_.address)); } } |