diff options
author | Mike Perry <mikeperry-git@fscked.org> | 2012-12-08 16:37:22 -0800 |
---|---|---|
committer | Mike Perry <mikeperry-git@fscked.org> | 2012-12-08 16:37:22 -0800 |
commit | 686fc222593fd46ec82d62f0fa62ca02900c1014 (patch) | |
tree | e7bcb41cb31078acb8c127f8006216e4a9cddea4 /src/or/relay.c | |
parent | b599a6ed07fd588500a256ef815e87729449626a (diff) | |
download | tor-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.c | 8 |
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)) { |