Skip to content
Snippets Groups Projects

relay: Avoid a directory early fetch

Merged David Goulet requested to merge dgoulet/tor:ticket40300_045_02 into maint-0.4.5
  1. Feb 23, 2021
    • David Goulet's avatar
      relay: Avoid a directory early fetch · 39d0f69d
      David Goulet authored
      
      The directory_fetches_from_authorities() is used to know if a client or relay
      should fetch data from an authority early in the boot process.
      
      We had a condition in that function that made a relay trigger that fetch if it
      didn't know its address (so we can learn it). However, when this is called,
      the address discovery has not been done yet so it would always return true for
      a relay.
      
      Furthermore, it would always trigger a log notice that the IPv4 couldn't be
      found which was inevitable because the address discovery process has not been
      done yet (done when building our first descriptor).
      
      It is also important to point out that starting in 0.4.5.1-alpha, asking an
      authority for an address is done during address discovery time using a one-hop
      circuit thus independent from the relay deciding to fetch or not documents
      from an authority.
      
      Small fix also is to reverse the "IPv(4|6)Only" flag in the notice so that if
      we can't find IPv6 it would output to use IPv4Only.
      
      Fixes #40300
      
      Signed-off-by: David Goulet's avatarDavid Goulet <dgoulet@torproject.org>
      39d0f69d
Loading