summaryrefslogtreecommitdiff
path: root/src/or/relay.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-10-16 13:26:42 -0400
committerNick Mathewson <nickm@torproject.org>2014-10-16 13:26:42 -0400
commitfb91d647acdf0560fc7479d72eeea52e4e6ff41d (patch)
tree500121c7c6c5b1b2cf3ee27d85f4cec6651853c6 /src/or/relay.c
parentab4b29625db720817f9af502199ebf1ee3ac5af7 (diff)
downloadtor-fb91d647acdf0560fc7479d72eeea52e4e6ff41d.tar.gz
tor-fb91d647acdf0560fc7479d72eeea52e4e6ff41d.zip
Downgrade 'invalid result from curve25519 handshake: 4' warning
Also, refactor the way we handle failed handshakes so that this warning doesn't propagate itself to "onion_skin_client_handshake failed" and "circuit_finish_handshake failed" and "connection_edge_process_relay_cell (at origin) failed." Resolves warning from 9635.
Diffstat (limited to 'src/or/relay.c')
-rw-r--r--src/or/relay.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/or/relay.c b/src/or/relay.c
index 9407df0559..73961de171 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -1643,8 +1643,9 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
}
if ((reason = circuit_finish_handshake(TO_ORIGIN_CIRCUIT(circ),
&extended_cell.created_cell)) < 0) {
- log_warn(domain,"circuit_finish_handshake failed.");
- return reason;
+ circuit_mark_for_close(circ, -reason);
+ return 0; /* We don't want to cause a warning, so we mark the circuit
+ * here. */
}
}
if ((reason=circuit_send_next_onion_skin(TO_ORIGIN_CIRCUIT(circ)))<0) {