1. 09 Jan, 2019 9 commits
  2. 08 Jan, 2019 10 commits
    • Ondřej Surý's avatar
      Merge branch 'ondrej/disable-CI-in-release-branches-v9_11' into 'v9_11' · c2515e8e
      Ondřej Surý authored
      (v9_11) Run the regular pipelines only for merge requests, and run only the Debian sid...
      
      See merge request !1311
      c2515e8e
    • Ondřej Surý's avatar
      Run the regular pipelines only for merge requests, and run only the Debian sid... · 88589472
      Ondřej Surý authored
      Run the regular pipelines only for merge requests, and run only the Debian sid build for release branches
      
      (cherry picked from commit 24961f60)
      88589472
    • Michał Kępień's avatar
      Merge branch '692-dig-fix-cleanup-upon-an-error-before-tcp-socket-creation-v9_11' into 'v9_11' · 36e2175b
      Michał Kępień authored
      [v9_11] Fix cleanup upon an error before TCP socket creation
      
      See merge request !1308
      36e2175b
    • Michał Kępień's avatar
      Add CHANGES entry · 9b96944b
      Michał Kępień authored
      5123.	[bug]		dig could hang indefinitely after encountering an error
      			before creating a TCP socket. [GL #692]
      
      (cherry picked from commit 3242cb53)
      9b96944b
    • Michał Kępień's avatar
      Fix cleanup upon an error before TCP socket creation · b9f577eb
      Michał Kępień authored
      When a query times out after a socket is created and associated with a
      given dig_query_t structure, calling isc_socket_cancel() causes
      connect_done() to be run, which in turn takes care of all necessary
      cleanups.  However, certain errors (e.g. get_address() returning
      ISC_R_FAMILYNOSUPPORT) may prevent a TCP socket from being created in
      the first place.  Since force_timeout() may be used in code handling
      such errors, connect_timeout() needs to properly clean up a TCP query
      which is not associated with any socket.  Call clear_query() from
      connect_timeout() after attempting to send a TCP query to the next
      available server if the timed out query does not have a socket
      associated with it, in order to prevent dig from hanging indefinitely
      due to the dig_query_t structure not being detached from its parent
      dig_lookup_t structure.
      
      (cherry picked from commit 13975b32)
      b9f577eb
    • Michał Kępień's avatar
      Refactor code sending a query to the next server upon a timeout · 11a4845c
      Michał Kępień authored
      When a query times out and another server is available for querying
      within the same lookup, the timeout handler - connect_timeout() - is
      responsible for sending the query to the next server.  Extract the
      relevant part of connect_timeout() to a separate function in order to
      improve code readability.
      
      (cherry picked from commit c108fc5c)
      11a4845c
    • Michał Kępień's avatar
      Remove dead code handling address family mismatches for TCP sockets · d8de90f8
      Michał Kępień authored
      Before commit c2ec022f, using the "-b"
      command line switch for dig did not disable use of the other address
      family than the one to which the address supplied to that option
      belonged to.  Thus, bind9_getaddresses() could e.g. prepare an
      isc_sockaddr_t structure for an IPv6 address when an IPv4 address has
      been passed to the "-b" command line option.  To avoid attempting the
      impossible (e.g. querying an IPv6 address from a socket bound to an IPv4
      address), a certain code block in send_tcp_connect() checked whether the
      address family of the server to be queried was the same as the address
      family of the socket set up for sending that query; if there was a
      mismatch, that particular server address was skipped.
      
      Commit c2ec022f made
      bind9_getaddresses() fail upon an address family mismatch between the
      address the hostname passed to it resolved to and the address supplied
      to the "-b" command line option.  Such failures were fatal to dig back
      then.
      
      Commit 7f658603 made
      bind9_getaddresses() failures non-fatal, but also ensured that a
      get_address() failure in send_tcp_connect() still causes the given query
      address to be skipped (and also made such failures trigger an early
      return from send_tcp_connect()).
      
      Summing up, the code block handling address family mismatches in
      send_tcp_connect() has been redundant since commit
      c2ec022f.  Remove it.
      
      (cherry picked from commit ef1da873)
      d8de90f8
    • Michał Kępień's avatar
      Merge branch '315-track-forwarder-timeouts-in-fetch-contexts-v9_11' into 'v9_11' · 5c9106da
      Michał Kępień authored
      [v9_11] Track forwarder timeouts in fetch contexts
      
      See merge request !1306
      5c9106da
    • Michał Kępień's avatar
      Add CHANGES entry · 3ddb8337
      Michał Kępień authored
      5122.	[bug]		In a "forward first;" configuration, a forwarder
      			timeout did not prevent that forwarder from being
      			queried again after falling back to full recursive
      			resolution. [GL #315]
      
      (cherry picked from commit 1df9ca9e)
      3ddb8337
    • 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
  3. 07 Jan, 2019 3 commits
  4. 02 Jan, 2019 2 commits
  5. 01 Jan, 2019 2 commits
  6. 21 Dec, 2018 14 commits