mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-20 13:06:20 +02:00
bugfix: if the exit stream is pending on the resolve, and a destroy
arrives, then the stream wasn't getting removed from the pending list. this may have been the lucky-bug. this commit may also not actually fix the bug. it's darn hard to reproduce. svn:r1122
This commit is contained in:
parent
8da2e00a83
commit
1b25794a56
@ -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? */
|
||||
|
Loading…
Reference in New Issue
Block a user