aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/or/dns.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/or/dns.c b/src/or/dns.c
index 7ee451826d..47f833c4be 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -565,6 +565,11 @@ parse_inaddr_arpa_address(const char *address, struct in_addr *in)
* if resolve valid, put it into <b>exitconn</b>-\>addr and return 1.
* If resolve failed, unlink exitconn if needed, free it, and return -1.
*
+ * (For EXIT_PURPOSE_RESOLVE connections, send back a RESOLVED error cell
+ * on returning -1. For EXIT_PURPOSE_CONNECT connections, there's no
+ * need to send back an END cell, since connection_exit_begin_conn will
+ * do that for us.)
+ *
* If <b>oncirc</b> is provided, and this is a resolve request, we have
* a cached answer, send the answer back along oncirc; otherwise, send
* the answer back along <b>exitconn</b>'s attached circuit.
@@ -607,7 +612,6 @@ dns_resolve(edge_connection_t *exitconn, or_circuit_t *oncirc)
escaped_safe_str(exitconn->_base.address));
if (is_resolve)
send_resolved_cell(exitconn, oncirc, RESOLVED_TYPE_ERROR);
- /* XXXX012 send error in connect case? -NM */
circ = circuit_get_by_edge_conn(exitconn);
if (circ)
circuit_detach_stream(circ, exitconn);
@@ -697,7 +701,6 @@ dns_resolve(edge_connection_t *exitconn, or_circuit_t *oncirc)
log_debug(LD_EXIT,"Connection (fd %d) found cached error for %s",
exitconn->_base.s,
escaped_safe_str(exitconn->_base.address));
- /* XXXX012 send back indication of failure for connect case? -NM*/
if (is_resolve)
send_resolved_cell(exitconn, oncirc, RESOLVED_TYPE_ERROR);
circ = circuit_get_by_edge_conn(exitconn);