diff options
author | Mike Perry <mikeperry-git@fscked.org> | 2012-12-12 11:53:18 -0800 |
---|---|---|
committer | Mike Perry <mikeperry-git@fscked.org> | 2013-01-08 17:28:08 -0800 |
commit | 15fdfc2993777497883df8945c1c9138bea2b33a (patch) | |
tree | d681380bd17ea8812196f13b8ea4aaf239685997 /src/or/or.h | |
parent | 3458d904f62b2d97dce5fea6f85285ea34851724 (diff) | |
download | tor-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.h | 12 |
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 |