summaryrefslogtreecommitdiff
path: root/src/or/or.h
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2012-12-12 11:53:18 -0800
committerMike Perry <mikeperry-git@fscked.org>2013-01-08 17:28:08 -0800
commit15fdfc2993777497883df8945c1c9138bea2b33a (patch)
treed681380bd17ea8812196f13b8ea4aaf239685997 /src/or/or.h
parent3458d904f62b2d97dce5fea6f85285ea34851724 (diff)
downloadtor-15fdfc2993777497883df8945c1c9138bea2b33a.tar.gz
tor-15fdfc2993777497883df8945c1c9138bea2b33a.zip
Bug 7691: Send a probe cell down certain types of circs.
In general, if we tried to use a circ for a stream, but then decided to place that stream on a different circuit, we need to probe the original circuit before deciding it was a "success". We also need to do the same for cannibalized circuits that go unused.
Diffstat (limited to 'src/or/or.h')
-rw-r--r--src/or/or.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/or/or.h b/src/or/or.h
index 7b8ff705a4..4b4806c62e 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -522,7 +522,9 @@ typedef enum {
#define CIRCUIT_PURPOSE_TESTING 18
/** A controller made this circuit and Tor should not use it. */
#define CIRCUIT_PURPOSE_CONTROLLER 19
-#define CIRCUIT_PURPOSE_MAX_ 19
+/** This circuit is used for path bias probing only */
+#define CIRCUIT_PURPOSE_PATH_BIAS_TESTING 20
+#define CIRCUIT_PURPOSE_MAX_ 20
/** A catch-all for unrecognized purposes. Currently we don't expect
* to make or see any circuits with this purpose. */
#define CIRCUIT_PURPOSE_UNKNOWN 255
@@ -2887,6 +2889,14 @@ typedef struct origin_circuit_t {
* debug why we are not seeing first hops in some cases. */
path_state_t path_state : 3;
+ /** For path probing. Store the temporary probe stream ID
+ * for response comparison */
+ streamid_t pathbias_probe_id;
+
+ /** For path probing. Store the temporary probe address nonce
+ * for response comparison. */
+ tor_addr_t pathbias_probe_nonce;
+
/** Set iff this is a hidden-service circuit which has timed out
* according to our current circuit-build timeout, but which has
* been kept around because it might still succeed in connecting to