aboutsummaryrefslogtreecommitdiff
path: root/src/or/relay.c
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2012-12-08 16:37:22 -0800
committerMike Perry <mikeperry-git@fscked.org>2012-12-08 16:37:22 -0800
commit686fc222593fd46ec82d62f0fa62ca02900c1014 (patch)
treee7bcb41cb31078acb8c127f8006216e4a9cddea4 /src/or/relay.c
parentb599a6ed07fd588500a256ef815e87729449626a (diff)
downloadtor-686fc222593fd46ec82d62f0fa62ca02900c1014.tar
tor-686fc222593fd46ec82d62f0fa62ca02900c1014.tar.gz
Allow any valid 'end' cell to mean a circuit was used successfully.
Also improve some log messages.
Diffstat (limited to 'src/or/relay.c')
-rw-r--r--src/or/relay.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/or/relay.c b/src/or/relay.c
index 7f49299e2..1638dae4f 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -693,6 +693,14 @@ connection_ap_process_end_not_open(
edge_connection_t *edge_conn = ENTRY_TO_EDGE_CONN(conn);
(void) layer_hint; /* unused */
+ if (rh->length > 0) {
+ /* Path bias: If we get a valid reason code from the exit,
+ * it wasn't due to tagging */
+ // XXX: This relies on recognized+digest being strong enough not
+ // to be spoofable.. Is that a valid assumption?
+ circ->path_state = PATH_STATE_USE_SUCCEEDED;
+ }
+
if (rh->length > 0 && edge_reason_is_retriable(reason) &&
/* avoid retry if rend */
!connection_edge_is_rendezvous_stream(edge_conn)) {