1. 30 Mar, 2022 11 commits
    • Tony Finch's avatar
      Merge branch '3209-notauth-subdomain' into 'main' · 3dd8af9a
      Tony Finch authored
      NOTAUTH errors should log the zone from the query not the nearest match
      
      Closes #3209
      
      See merge request isc-projects/bind9!5982
      3dd8af9a
    • Tony Finch's avatar
      Log "not authoritative for update zone" more clearly · 84c4eb02
      Tony Finch authored
      Ensure the update zone name is mentioned in the NOTAUTH error message
      in the server log, so that it is easier to track down problematic
      update clients. There are two cases: either the update zone is
      unrelated to any of the server's zones (previously no zone was
      mentioned); or the update zone is a subdomain of one or more of the
      server's zones (previously the name of the irrelevant parent zone was
      misleadingly logged).
      
      Closes #3209
      84c4eb02
    • Ondřej Surý's avatar
      Merge branch '3230-remove-task-exclusive-mode-from-ns_clientmgr' into 'main' · 8594cd00
      Ondřej Surý authored
      Remove task exclusive mode from ns_clientmgr
      
      Closes #3230
      
      See merge request isc-projects/bind9!6024
      8594cd00
    • Ondřej Surý's avatar
      Add CHANGES mode for [GL #3230] · a2438605
      Ondřej Surý authored
      a2438605
    • Ondřej Surý's avatar
      Remove task exclusive mode from ns_clientmgr · 4f74e101
      Ondřej Surý authored
      The .lock, .exiting and .excl members were not using for anything else
      than starting task exclusive mode, setting .exiting to true and ending
      exclusive mode.
      
      Remove all the stray members and dead code eliminating the task
      exclusive mode use from ns_clientmgr.
      4f74e101
    • Ondřej Surý's avatar
      Merge branch '3213-remove-exclusive-task-mode-from-dns_adb' into 'main' · 003e4b00
      Ondřej Surý authored
      refactor ADB
      
      Closes #3213
      
      See merge request isc-projects/bind9!6033
      003e4b00
    • Evan Hunt's avatar
      Add CHANGES note for [GL #3213] · 2c419b7a
      Evan Hunt authored and Ondřej Surý's avatar Ondřej Surý committed
      2c419b7a
    • Evan Hunt's avatar
      Add detailed ADB and entry attach/detach tracing · 199be183
      Evan Hunt authored and Ondřej Surý's avatar Ondřej Surý committed
      To turn on detailed debug tracing of dns_adb and dns_adbentry
      reference counting, #define ADB_TRACE at the top of adb.c. This
      is off by default.
      199be183
    • Evan Hunt's avatar
      Refactor ADB reference counting, shutdown and locking · d48d8e1c
      Evan Hunt authored and Ondřej Surý's avatar Ondřej Surý committed
      The ADB previously used separate reference counters for internal
      and external references, plus additional counters for ABD find
      and namehook objects, and used all these counters to coordinate
      its shutdown process, which was a multi-stage affair involving
      a sequence of control events.
      
      It also used a complex interlocking set of static functions for
      referencing, deferencing, linking, unlinking, and cleaning up various
      internal objects; these functions returned boolean values to their
      callers to indicate what additional processing was needed.
      
      The changes in the previous two commits destabilized this fragile
      system in a way that was difficult to recover from, so in this commit
      we refactor all of it. The dns_adb and dns_adbentry objects now use
      conventional attach and detach functions for reference counting, and
      the shutdown process is much more straightforward.  Instead of
      handling shutdown asynchronously, we can just destroy the ADB when
      references reach zero
      
      In addition, ADB locking has been simplified. Instead of a
      single `find_{name,entry}_and_lock()` function which searches for
      a name or entry's hash bucket, locks it, and then searches for the
      name or entry in the bucket, we now use one function to find the
      bucket (leaving it to the caller to do the locking) and another
      find the name or entry.  Instead of locking the entire ADB when
      modifying hash tables, we now use read-write locks around the
      specific hash table. The only remaining need for adb->lock
      is when modifying the `whenshutdown` list.
      
      Comments throughout the module have been improved.
      d48d8e1c
    • Evan Hunt's avatar
      Refactor how ADB names and entries are stored in the dns_adb · 76bcb4d1
      Evan Hunt authored and Ondřej Surý's avatar Ondřej Surý committed
      
      
      Replace adb->{names,entries} and related arrays (indexed by hashed
      bucket) with a isc_ht hash tables storing the new struct
      adb{name,entry}bucket_t that wraps all the variables that were
      originally stored in arrays indexed by "bucket" number stored directly
      in the struct dns_adb.
      
      Previously, the task exclusive mode has been used to grow the internal
      arrays used to store the named and entries objects.  The isc_ht hash
      tables are now protected by the isc_rwlock instead and thus the usage of
      the task exclusive mode has been removed from the dns_adb.
      Co-authored-by: Ondřej Surý's avatarOndřej Surý <ondrej@isc.org>
      76bcb4d1
    • Evan Hunt's avatar
      minor pre-refactoring cleanups · 6e11211a
      Evan Hunt authored and Ondřej Surý's avatar Ondřej Surý committed
      the use of "result" as a variable name for a boolean return value
      was confusing; all 'result' variables that are not isc_result_t
      have been renamed to 'ret'.
      
      The static function print_dns_name() was a duplicate of
      dns_name_print(), so it has been replaced with that.
      
      Changed INSIST to REQUIRE where appropriate, and added NULL
      initialization for pointer variables.
      6e11211a
  2. 29 Mar, 2022 5 commits
  3. 28 Mar, 2022 24 commits