mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
Use the preferred address and port when initiating a connection.
This is not as conservative as we could do it, f.ex. by looking at the connection and only do this for connections to bridges. A non-bridge should never have anything else than its primary IPv4 address set though, so I think this is safe.
This commit is contained in:
parent
f6ce9e4ea5
commit
f89c619679
@ -648,8 +648,9 @@ connection_or_init_conn_from_address(or_connection_t *conn,
|
|||||||
tor_addr_copy(&conn->real_addr, addr);
|
tor_addr_copy(&conn->real_addr, addr);
|
||||||
if (r) {
|
if (r) {
|
||||||
tor_addr_t node_addr;
|
tor_addr_t node_addr;
|
||||||
node_get_addr(r, &node_addr);
|
node_get_pref_addr(r, &node_addr);
|
||||||
/* XXXX proposal 118 will make this more complex. */
|
/* XXXX proposal 186 is making this more complex. For now, a conn
|
||||||
|
is canonical when it uses the _preferred_ address. */
|
||||||
if (tor_addr_eq(&conn->_base.addr, &node_addr))
|
if (tor_addr_eq(&conn->_base.addr, &node_addr))
|
||||||
conn->is_canonical = 1;
|
conn->is_canonical = 1;
|
||||||
if (!started_here) {
|
if (!started_here) {
|
||||||
@ -664,7 +665,7 @@ connection_or_init_conn_from_address(or_connection_t *conn,
|
|||||||
* log the "right" port too, so we know if it's moria1 or moria2.
|
* log the "right" port too, so we know if it's moria1 or moria2.
|
||||||
*/
|
*/
|
||||||
tor_addr_copy(&conn->_base.addr, &node_addr);
|
tor_addr_copy(&conn->_base.addr, &node_addr);
|
||||||
conn->_base.port = node_get_orport(r);
|
conn->_base.port = node_get_pref_orport(r);
|
||||||
}
|
}
|
||||||
conn->nickname = tor_strdup(node_get_nickname(r));
|
conn->nickname = tor_strdup(node_get_nickname(r));
|
||||||
tor_free(conn->_base.address);
|
tor_free(conn->_base.address);
|
||||||
|
Loading…
Reference in New Issue
Block a user