diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-10-17 11:15:01 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-10-17 11:15:01 -0400 |
commit | 898bd1ae8f1eeb880eaaeba2caa1cda435a1ac5b (patch) | |
tree | 2ce70f4e4047f91aea5800563f4cf34e3d00284e /src | |
parent | f633184af1f0dd4a0d2a4c3490d95a8aa6e964d1 (diff) | |
download | tor-898bd1ae8f1eeb880eaaeba2caa1cda435a1ac5b.tar tor-898bd1ae8f1eeb880eaaeba2caa1cda435a1ac5b.tar.gz |
Fix for bug 7112 (spewing complaints from tor_addr_is_internal)
In 4768c0efe3e9471cc367c3740d1a4ba0ab79626c (not in any released
version of Tor), we removed a little block of code that set the addr
field of an exit connection used in making a tunneled directory
request. Turns out that wasn't right.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/connection_edge.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index e7bc09a19..53b57ebff 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -3180,7 +3180,12 @@ connection_exit_begin_conn(cell_t *cell, circuit_t *circ) n_stream->on_circuit = circ; if (rh.command == RELAY_COMMAND_BEGIN_DIR) { + tor_addr_t tmp_addr; tor_assert(or_circ); + if (or_circ->p_chan && + channel_get_addr_if_possible(or_circ->p_chan, &tmp_addr)) { + tor_addr_copy(&n_stream->base_.addr, &tmp_addr); + } return connection_exit_connect_dir(n_stream); } |