1. 18 Apr, 2019 1 commit
  2. 12 Apr, 2019 2 commits
  3. 15 Mar, 2019 1 commit
  4. 05 Mar, 2019 3 commits
  5. 04 Mar, 2019 1 commit
  6. 21 Feb, 2019 1 commit
  7. 11 Feb, 2019 1 commit
  8. 08 Feb, 2019 3 commits
  9. 07 Feb, 2019 2 commits
  10. 06 Feb, 2019 1 commit
  11. 22 Jan, 2019 1 commit
  12. 17 Jan, 2019 1 commit
    • Witold Krecicki's avatar
      If possible don't use forwarders when priming the resolver. · aa9866c3
      Witold Krecicki authored
      If we try to fetch a record from cache and need to look into
      hints database we assume that the resolver is not primed and
      start dns_resolver_prime(). Priming query is supposed to return
      NSes for "." in ANSWER section and glue records for them in
      ADDITIONAL section, so that we can fill that info in 'regular'
      cache and not use hints db anymore.
      However, if we're using a forwarder the priming query goes through
      it, and if it's configured to return minimal answers we won't get
      the addresses of root servers in ADDITIONAL section. Since the
      only records for root servers we have are in hints database we'll
      try to prime the resolver with every single query.
      
      This patch adds a DNS_FETCHOPT_NOFORWARD flag which avoids using
      forwarders if possible (that is if we have forward-first policy).
      Using this flag on priming fetch fixes the problem as we get the
      proper glue. With forward-only policy the problem is non-existent,
      as we'll never ask for root server addresses because we'll never
      have a need to query them.
      
      Also added a test to confirm priming queries are not forwarded.
      
      (cherry picked from commit b49310ac)
      (cherry picked from commit f8963ad7)
      aa9866c3
  13. 15 Jan, 2019 1 commit
  14. 09 Jan, 2019 1 commit
  15. 08 Jan, 2019 1 commit
    • Michał Kępień's avatar
      Track forwarder timeouts in fetch contexts · 3db9f567
      Michał Kępień authored
      Since following a delegation resets most fetch context state, address
      marks (FCTX_ADDRINFO_MARK) set inside lib/dns/resolver.c are not
      preserved when a delegation is followed.  This is fine for full
      recursive resolution but when named is configured with "forward first;"
      and one of the specified forwarders times out, triggering a fallback to
      full recursive resolution, that forwarder should no longer be consulted
      at each delegation point subsequently reached within a given fetch
      context.
      
      Add a new badnstype_t enum value, badns_forwarder, and use it to mark a
      forwarder as bad when it times out in a "forward first;" configuration.
      Since the bad server list is not cleaned when a fetch context follows a
      delegation, this prevents a forwarder from being queried again after
      falling back to full recursive resolution.  Yet, as each fetch context
      maintains its own list of bad servers, this change does not cause a
      forwarder timeout to prevent that forwarder from being used by other
      fetch contexts.
      
      (cherry picked from commit 33350626)
      3db9f567
  16. 01 Jan, 2019 1 commit
  17. 21 Dec, 2018 2 commits
  18. 20 Dec, 2018 2 commits
  19. 14 Dec, 2018 2 commits
  20. 10 Dec, 2018 2 commits
  21. 07 Dec, 2018 2 commits
  22. 30 Nov, 2018 1 commit
  23. 16 Nov, 2018 3 commits
  24. 12 Nov, 2018 3 commits
  25. 05 Nov, 2018 1 commit