]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
bugfix: when a resolve fails for a begin request, actually send
authorRoger Dingledine <arma@torproject.org>
Tue, 21 Sep 2004 17:33:05 +0000 (17:33 +0000)
committerRoger Dingledine <arma@torproject.org>
Tue, 21 Sep 2004 17:33:05 +0000 (17:33 +0000)
the end cell back. also, give a better reason for failure.

svn:r2358

src/or/dns.c

index 19dd0e1520a124b4e486dbc68e8fc068a5cdd678..3534de1b082a2640efc426051828f3784a427ac4 100644 (file)
@@ -495,10 +495,9 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) {
       /* prevent double-remove. */
       pendconn->state = EXIT_CONN_STATE_RESOLVEFAILED;
       if (pendconn->purpose == EXIT_PURPOSE_CONNECT) {
-        /*XXXX can we safely raise the detach here to happen after we
-         * send the end cell? */
+        connection_edge_end(pendconn, END_STREAM_REASON_RESOLVEFAILED, pendconn->cpath_layer);
+        /* This detach must happen after we send the end cell. */
         circuit_detach_stream(circuit_get_by_conn(pendconn), pendconn);
-        connection_edge_end(pendconn, END_STREAM_REASON_MISC, pendconn->cpath_layer);
       } else {
         send_resolved_cell(pendconn, RESOLVED_TYPE_ERROR);
         /* This detach must happen after we send the resolved cell. */