summaryrefslogtreecommitdiff
path: root/src/core/or/origin_circuit_st.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/or/origin_circuit_st.h')
-rw-r--r--src/core/or/origin_circuit_st.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/or/origin_circuit_st.h b/src/core/or/origin_circuit_st.h
index a45a6573dc..c40e84aed8 100644
--- a/src/core/or/origin_circuit_st.h
+++ b/src/core/or/origin_circuit_st.h
@@ -171,6 +171,18 @@ struct origin_circuit_t {
unsigned padding_negotiation_failed : 1;
/**
+ * If this flag is set, then a controller chose the first hop of this
+ * circuit's path, and it's okay to ignore checks that we'd usually do
+ * on this circuit's first hop.
+ *
+ * This flag is distinct from the CIRCUIT_PURPOSE_CONTROLLER purpose: the
+ * purpose indicates _what tor can use the circuit for_. Controller-created
+ * circuits can still have the CIRCUIT_PURPOSE_GENERAL purpose if Tor is
+ * allowed to attach streams to them.
+ */
+ unsigned first_hop_from_controller : 1;
+
+ /**
* Tristate variable to guard against pathbias miscounting
* due to circuit purpose transitions changing the decision
* of pathbias_should_count(). This variable is informational