1. 01 Jan, 2019 1 commit
  2. 19 Dec, 2018 3 commits
  3. 18 Dec, 2018 1 commit
  4. 11 Dec, 2018 3 commits
  5. 10 Dec, 2018 1 commit
  6. 06 Dec, 2018 3 commits
    • Evan Hunt's avatar
      add basic plugins documentation · c63ead9d
      Evan Hunt authored
    • Evan Hunt's avatar
      name change from "hook modules" to "plugins" · fd20f10d
      Evan Hunt authored
      - "hook" is now used only for hook points and hook actions
      - the "hook" statement in named.conf is now "plugin"
      - ns_module and ns_modlist are now ns_plugin and ns_plugins
      - ns_module_load is renamed ns_plugin_register
      - the mandatory functions in plugin modules (hook_register,
        hook_check, hook_version, hook_destroy) have been renamed
    • Evan Hunt's avatar
      set up hooks.c to enable setting hook points and loading modules · 70cc3f80
      Evan Hunt authored
      - move hooks.h to public include directory
      - ns_hooktable_init() initializes a hook table. if NULL is passed in, it
        initializes the global hook table
      - ns_hooktable_save() saves a pointer to the current global hook table.
      - ns_hooktable_reset() replaces the global hook table with different
      - ns_hook_add() adds hooks at specified hook points in a hook table (or
        the global hook table if the specified table is NULL)
      - load and unload functions support dlopen() of hook modules (this is
        adapted from dyndb and not yet functional)
      - began adding new hook points to query.c
  7. 28 Nov, 2018 1 commit
  8. 22 Nov, 2018 1 commit
  9. 15 Nov, 2018 1 commit
  10. 14 Nov, 2018 1 commit
  11. 12 Nov, 2018 3 commits
  12. 10 Nov, 2018 1 commit
  13. 09 Nov, 2018 2 commits
  14. 07 Nov, 2018 1 commit
  15. 05 Nov, 2018 1 commit
  16. 26 Oct, 2018 2 commits
  17. 25 Oct, 2018 6 commits
  18. 24 Oct, 2018 5 commits
    • Michał Kępień's avatar
      Update documentation · 7bb3d000
      Michał Kępień authored
    • Michał Kępień's avatar
      Define a default master server list for the root zone · 2c69734b
      Michał Kępień authored
      To minimize the effort required to set up IANA root zone mirroring,
      define a default master server list for the root zone and use it when
      that zone is to be mirrored and no master server list was explicitly
      specified.  Contents of that list are taken from RFC 7706 and are
      subject to change in future releases.
      Since the static get_masters_def() function in bin/named/config.c does
      exactly what named_zone_configure() in bin/named/zoneconf.c needs to do,
      make the former non-static and use it in the latter to prevent code
    • Michał Kępień's avatar
      Prevent mirror zones from being used when recursion is disabled · 34dc674f
      Michał Kępień authored
      Since mirror zone data is treated as cache data for access control
      purposes, configuring a mirror zone and disabling recursion at the same
      time would effectively prevent mirror zone data from being used since
      disabling recursion also disables cache access to all clients by
      default.  Even though this behavior can be inhibited by configuration,
      mirror zones are a recursive resolver feature and thus recursion is now
      required to use them.
      Ignore the fact that certain configurations might still trick named into
      assuming recursion is enabled when it effectively is not since this
      change is not meant to put a hard policy in place but rather just to
      prevent accidental mirror zone misuse.
    • Michał Kępień's avatar
      Clean up handling of NOTIFY settings for mirror zones · 1d49b01c
      Michał Kępień authored
      Previous way of handling NOTIFY settings for mirror zones was a bit
      tricky: any value of the "notify" option was accepted, but it was
      subsequently overridden with dns_notifytype_explicit.  Given the way
      zone configuration is performed, this resulted in the following
        - if "notify yes;" was set explicitly at any configuration level or
          inherited from default configuration, it was silently changed and so
          only hosts specified in "also-notify", if any, were notified,
        - if "notify no;" was set at any configuration level, it was
          effectively honored since even though zone->notifytype was silently
          set to dns_notifytype_explicit, the "also-notify" option was never
          processed due to "notify no;" being set.
      Effectively, this only allowed the hosts specified in "also-notify" to
      be notified, when either "notify yes;" or "notify explicit;" was
      explicitly set or inherited from default configuration.
      Clean up handling of NOTIFY settings for mirror zones by:
        - reporting a configuration error when anything else than "notify no;"
          or "notify explicit;" is set for a mirror zone at the zone level,
        - overriding inherited "notify yes;" setting with "notify explicit;"
          for mirror zones,
        - informing the user when the "notify" setting is overridden, unless
          the setting in question was inherited from default configuration.
    • Michał Kępień's avatar
      Replace the "mirror" zone option with "type mirror;" · 2cb9e8a0
      Michał Kępień authored
      Use a zone's 'type' field instead of the value of its DNS_ZONEOPT_MIRROR
      option for checking whether it is a mirror zone.  This makes said zone
      option and its associated helper function, dns_zone_mirror(), redundant,
      so remove them.  Remove a check specific to mirror zones from
      named_zone_reusable() since another check in that function ensures that
      changing a zone's type prevents it from being reused during
  19. 23 Oct, 2018 1 commit
    • Michał Kępień's avatar
      libirs: handle scoped IPv6 addresses in /etc/resolv.conf · 76d49c05
      Michał Kępień authored
      Commonly used network configuration tools write scoped IPv6 nameserver
      addresses to /etc/resolv.conf.  libirs only handles these when it is
      compiled with -DIRS_HAVE_SIN6_SCOPE_ID, which is not the default, and
      only handles numeric scopes, which is not what network configuration
      tools typically use.  This causes dig to be practically unable to handle
      scoped IPv6 nameserver addresses in /etc/resolv.conf.
      Fix the problem by:
        - not requiring a custom compile-time flag to be set in order for
          scoped IPv6 addresses to be processed by getaddrinfo(),
        - parsing non-numeric scope identifiers using if_nametoindex(),
        - setting the sin6_scope_id field in struct sockaddr_in6 structures
          returned by getaddrinfo() even if the AI_CANONNAME flag is not set.
  20. 18 Oct, 2018 2 commits
    • Evan Hunt's avatar
      retain a minimal "methods" struct in the mctx · 09f58ab6
      Evan Hunt authored
      - this enables memory to be allocated and freed in dyndb modules
        when named is linked statically. when we standardize on libtool,
        this should become unnecessary.
      - also, simplified the isc_mem_create/createx API by removing
        extra compatibility functions
    • Evan Hunt's avatar
      complete removal of a few unneeded functions · 0e86fa16
      Evan Hunt authored
      - removed register functions from isc_app, isc_timer, isc_task
      - added a task_p.h header for use by unit tests