diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-04-23 09:04:53 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-04-23 09:04:53 -0400 |
commit | 8a951ed15816b028baf30a0606b9a15a39a36601 (patch) | |
tree | 096f984a2ecf6a28b82fc8d97ad8b74262fdb4cd | |
parent | 9b87a6c156fb4834649772ef9eb6be0a41d096de (diff) | |
parent | 9139aeadb8bb41551d351846b4894dd9fe6254d1 (diff) | |
download | tor-8a951ed15816b028baf30a0606b9a15a39a36601.tar.gz tor-8a951ed15816b028baf30a0606b9a15a39a36601.zip |
Merge remote-tracking branch 'teor/bug-15771-reachability'
-rw-r--r-- | changes/bug-15771-reachability | 8 | ||||
-rw-r--r-- | src/or/circuitbuild.c | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/changes/bug-15771-reachability b/changes/bug-15771-reachability new file mode 100644 index 0000000000..aff6268efb --- /dev/null +++ b/changes/bug-15771-reachability @@ -0,0 +1,8 @@ + o Minor bugfixes (test networks) + - When self-testing reachability, use ExtendAllowPrivateAddresses + to determine if local/private addresses imply reachability. + The previous fix used TestingTorNetwork, which implies + ExtendAllowPrivateAddresses, but this excluded rare configs where + ExtendAllowPrivateAddresses is set but TestingTorNetwork is not. + Fixes bug 15771; bugfix on 0.2.6.1-alpha, bug #13924. + Patch by "teor", issue discovered by CJ Ess. diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 985234fded..0688398f6d 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1400,9 +1400,12 @@ onionskin_answer(or_circuit_t *circ, log_debug(LD_CIRC,"Finished sending '%s' cell.", circ->is_first_hop ? "created_fast" : "created"); - /* Ignore the local bit when testing - many test networks run on local - * addresses */ - if ((!channel_is_local(circ->p_chan) || get_options()->TestingTorNetwork) + /* Ignore the local bit when ExtendAllowPrivateAddresses is set: + * it violates the assumption that private addresses are local. + * Also, many test networks run on local addresses, and + * TestingTorNetwork sets ExtendAllowPrivateAddresses. */ + if ((!channel_is_local(circ->p_chan) + || get_options()->ExtendAllowPrivateAddresses) && !channel_is_outgoing(circ->p_chan)) { /* record that we could process create cells from a non-local conn * that we didn't initiate; presumably this means that create cells |