[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] channel: Consider NETINFO other address as ours



commit f5ce8a2bed833befcee895d4966d5731ad2fdf75
Author: David Goulet <dgoulet@xxxxxxxxxxxxxx>
Date:   Mon Jul 6 09:50:48 2020 -0400

    channel: Consider NETINFO other address as ours
    
    Attempt to learn our address from the NETINFO cell.
    
    At this commit, the address won't be used in the descriptor if selected. Next
    commit will make it happen.
    
    Related to #40022
    
    Signed-off-by: David Goulet <dgoulet@xxxxxxxxxxxxxx>
---
 src/core/or/channeltls.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c
index fc93ea8d5..9198a8bfb 100644
--- a/src/core/or/channeltls.c
+++ b/src/core/or/channeltls.c
@@ -72,6 +72,7 @@
 #include "core/or/or_handshake_state_st.h"
 #include "feature/nodelist/routerinfo_st.h"
 #include "core/or/var_cell_st.h"
+#include "src/feature/relay/relay_find_addr.h"
 
 #include "lib/tls/tortls.h"
 #include "lib/tls/x509.h"
@@ -1929,8 +1930,11 @@ channel_tls_process_netinfo_cell(cell_t *cell, channel_tls_t *chan)
                        "NETINFO cell", "OR");
   }
 
-  /* XXX maybe act on my_apparent_addr, if the source is sufficiently
-   * trustworthy. */
+  /* Consider our apparent address as a possible suggestion for our address if
+   * we were unable to resolve it previously. The endpoint address is passed
+   * in order to make sure to never consider an address that is the same as
+   * our endpoint. */
+  relay_address_new_suggestion(&my_apparent_addr, &chan->conn->real_addr);
 
   if (! chan->conn->handshake_state->sent_netinfo) {
     /* If we were prepared to authenticate, but we never got an AUTH_CHALLENGE



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits