summaryrefslogtreecommitdiff
path: root/src/or/relay.c
diff options
context:
space:
mode:
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 7f49299e2b..1638dae4fd 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)) {