1. 14 Jan, 2020 24 commits
  2. 13 Jan, 2020 16 commits
    • Evan Hunt's avatar
      CHANGES · c3ed086c
      Evan Hunt authored
    • Evan Hunt's avatar
      count statistics in netmgr TCP code · 5234a8e0
      Evan Hunt authored
    • Evan Hunt's avatar
      count statistics in netmgr UDP code · 90a1dabe
      Evan Hunt authored
      - also restored a test in the statistics test which was changed when
        the netmgr was introduced because active sockets were not being
    • Evan Hunt's avatar
      associate socket stats counters with netmgr socket objects · 80a5c9f5
      Evan Hunt authored
      - the socket stat counters have been moved from socket.h to stats.h.
      - isc_nm_t now attaches to the same stats counter group as
        isc_socketmgr_t, so that both managers can increment the same
        set of statistics
      - isc__nmsocket_init() now takes an interface as a paramter so that
        the address family can be determined when initializing the socket.
      - based on the address family and socket type, a group of statistics
        counters will be associated with the socket - for example, UDP4Active
        with IPv4 UDP sockets and TCP6Active with IPv6 TCP sockets.  note
        that no counters are currently associated with TCPDNS sockets; those
        stats will be handled by the underlying TCP socket.
      - the counters are not actually used by netmgr sockets yet; counter
        increment and decrement calls will be added in a later commit.
    • Witold Krecicki's avatar
      Merge branch 'wpk-no-ipc-tcp-passing' into 'master' · a4ec0ccb
      Witold Krecicki authored
      Pass TCP listening sockets using async channel, not IPC
      Closes #1433, #1499, and #1500
      See merge request !2825
    • Witold Krecicki's avatar
      CHANGES note · 7a7b09fe
      Witold Krecicki authored
    • Witold Krecicki's avatar
      Disable pktinfo for ipv6 on all unices · 20c077af
      Witold Krecicki authored
      If pktinfo were supported then we could listen on :: for ipv6 and get
      the information about the destination address from pktinfo structure passed
      in recvmsg but this method is not portable and libuv doesn't support it - so
      we need to listen on all interfaces.
      We should verify that this doesn't impact performance (we already do it for
      ipv4) and either remove all the ipv6pktinfo detection code or think of fixing
    • Evan Hunt's avatar
      netmgr fixes: · e3800445
      Evan Hunt authored
       - use UV_{TC,UD}P_IPV6ONLY for IPv6 sockets, keeping the pre-netmgr
       - add a new listening_error bool flag which is set if the child
         listener fails to start listening. This fixes a bug where named would
         hang if, e.g.,  we failed to bind to a TCP socket.
    • Witold Krecicki's avatar
      Use isc_uv_export() to pass bound TCP listening socket to child listeners. · 67c1ca9a
      Witold Krecicki authored
      For multithreaded TCP listening we need to pass a bound socket to all
      listening threads. Instead of using uv_pipe handle passing method which
      is quite complex (lots of callbacks, each of them with its own error
      handling) we now use isc_uv_export() to export the socket, pass it as a
      member of the isc__netievent_tcpchildlisten_t structure, and then
      isc_uv_import() it in the child thread, simplifying the process
    • Witold Krecicki's avatar
      Add isc_uv_export()/isc_uv_import() functions to libuv compatibility layer. · c6c0a9fd
      Witold Krecicki authored
      These functions can be used to pass a uv handle between threads in a
      safe manner. The other option is to use uv_pipe and pass the uv_handle
      via IPC, which is way more complex.  uv_export() and uv_import() functions
      existed in libuv at some point but were removed later. This code is
      based on the original removed code.
      The Windows version of the code uses two functions internal to libuv;
      a patch for libuv is attached for exporting these functions.
    • Michal Nowak's avatar
      Merge branch 'mnowak/add-openSUSE-Tumblewed-image' into 'master' · ab1adcca
      Michal Nowak authored
      Add openSUSE Tumbleweed image to the CI
      Closes #1303
      See merge request !2826
    • Michal Nowak's avatar
      Add openSUSE Tumbleweed image to the CI · 3526c730
      Michal Nowak authored
      Ensure BIND is continuously tested on Tumbleweed, a pure rolling release
      version of openSUSE.  This will allow BIND incompatibilities with latest
      upstream versions of its dependencies to be caught more quickly.
    • Michał Kępień's avatar
      Merge branch '1552-properly-detect-mmdb-lookup-failures' into 'master' · 7787de80
      Michał Kępień authored
      Properly detect MMDB lookup failures
      Closes #1552
      See merge request !2864
    • Michał Kępień's avatar
      Add CHANGES entry · aa96ec25
      Michał Kępień authored
      5339.	[bug]		With some libmaxminddb versions, named could erroneously
      			match an IP address not belonging to any subnet defined
      			in a given GeoIP2 database to one of the existing
      			entries in that database. [GL #1552]
    • Michał Kępień's avatar
      Properly detect MMDB lookup failures · ec8334fb
      Michał Kępień authored
      Only comparing the value of the integer passed as the last argument to
      MMDB_lookup_sockaddr() against MMDB_SUCCESS is not enough to ensure that
      an MMDB lookup was successful - the 'found_entry' field of the
      MMDB_lookup_result_s structure returned by that function also needs to
      be true or else the remaining contents of that structure should be
      ignored as the lookup failed.  Extend the relevant logical condition in
      get_entry_for() to ensure the latter does not return incorrect MMDB
      entries for IP addresses which do not belong to any subnet defined in a
      given GeoIP2 database.
    • Ondřej Surý's avatar
      Merge branch... · 8797d8ad
      Ondřej Surý authored
      Merge branch '1507-warning-threadsanitizer-data-race-lib-isc-tests-socket_test-simple' into 'master'
      Address dns_zt_asyncload races by properly using isc_reference_*.
      Closes #1507
      See merge request !2870