1. 09 Jan, 2019 3 commits
  2. 08 Jan, 2019 10 commits
    • Ondřej Surý's avatar
      Merge branch 'ondrej/disable-CI-in-release-branches' into 'master' · 10d8f319
      Ondřej Surý authored
      Run the regular pipelines only for merge requests, and run only the Debian sid...
      
      See merge request !1309
      10d8f319
    • Ondřej Surý's avatar
      Run the regular pipelines only for merge requests, and run only the Debian sid... · 24961f60
      Ondřej Surý authored
      Run the regular pipelines only for merge requests, and run only the Debian sid build for release branches
      24961f60
    • Michał Kępień's avatar
      Merge branch '692-dig-fix-cleanup-upon-an-error-before-tcp-socket-creation' into 'master' · 1b409b8c
      Michał Kępień authored
      Fix cleanup upon an error before TCP socket creation
      
      Closes #692
      
      See merge request !1100
      1b409b8c
    • Michał Kępień's avatar
      Add CHANGES entry · 3242cb53
      Michał Kępień authored
      5123.	[bug]		dig could hang indefinitely after encountering an error
      			before creating a TCP socket. [GL #692]
      3242cb53
    • Michał Kępień's avatar
      Fix cleanup upon an error before TCP socket creation · 13975b32
      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.
      13975b32
    • Michał Kępień's avatar
      Refactor code sending a query to the next server upon a timeout · c108fc5c
      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.
      c108fc5c
    • Michał Kępień's avatar
      Remove dead code handling address family mismatches for TCP sockets · ef1da873
      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.
      ef1da873
    • Michał Kępień's avatar
      Merge branch '315-track-forwarder-timeouts-in-fetch-contexts' into 'master' · dca16524
      Michał Kępień authored
      Track forwarder timeouts in fetch contexts
      
      Closes #315
      
      See merge request !826
      dca16524
    • Michał Kępień's avatar
      Add CHANGES entry · 1df9ca9e
      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]
      1df9ca9e
    • Michał Kępień's avatar
      Track forwarder timeouts in fetch contexts · 33350626
      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.
      33350626
  3. 07 Jan, 2019 3 commits
  4. 03 Jan, 2019 4 commits
  5. 02 Jan, 2019 1 commit
  6. 01 Jan, 2019 3 commits
  7. 27 Dec, 2018 2 commits
  8. 20 Dec, 2018 10 commits
  9. 19 Dec, 2018 4 commits