1. 15 Feb, 2018 10 commits
    • Mark Andrews's avatar
      clear *logp · 89ff72be
      Mark Andrews authored
      89ff72be
    • Mark Andrews's avatar
      use %u instead of %d · ea8e149f
      Mark Andrews authored
      ea8e149f
    • Mark Andrews's avatar
      signed vs unsigned fixes · b060852a
      Mark Andrews authored
      b060852a
    • Michał Kępień's avatar
      Merge branch 'fix-loadpending-handling' into 'master' · 3abc7bf2
      Michał Kępień authored
      Fix DNS_ZONEFLG_LOADPENDING handling
      
      See merge request !22
      3abc7bf2
    • Evan Hunt's avatar
      [master] copyrights · 883a9485
      Evan Hunt authored
      883a9485
    • Michał Kępień's avatar
      Add CHANGES entry · 801dfe8f
      Michał Kępień authored
      4892.	[bug]		named could leak memory when "rndc reload" was invoked
      			before all zone loading actions triggered by a previous
      			"rndc reload" command were completed. [RT #47076]
      801dfe8f
    • Michał Kępień's avatar
      Do not recheck DNS_ZONEFLG_LOADPENDING in zone_asyncload() · f5079bb8
      Michał Kępień authored
      Remove a block of code which dates back to commit 8a2ab2b9, when
      dns_zone_asyncload() did not yet check DNS_ZONEFLG_LOADPENDING.
      Currently, no race in accessing DNS_ZONEFLG_LOADPENDING is possible any
      more, because:
      
        - dns_zone_asyncload() is still the only function which may queue
          zone_asyncload(),
      
        - dns_zone_asyncload() accesses DNS_ZONEFLG_LOADPENDING under a lock
          (and potentially queues an event under the same lock),
      
        - DNS_ZONEFLG_LOADPENDING is not cleared until the load actually
          completes.
      
      Thus, the rechecking code can be safely removed from zone_asyncload().
      
      Note that this also brings zone_asyncload() to a state in which the
      completion callback is always invoked.  This is required to prevent
      leaking memory in case something goes wrong in zone_asyncload() and a
      zone table the zone belongs to is indefinitely left with a positive
      reference count.
      f5079bb8
    • Michał Kępień's avatar
      Asynchronous zone load events have no way of getting canceled · b9e9361c
      Michał Kępień authored
      Code handling cancellation of asynchronous zone load events was likely
      copied over from other functions when asynchronous zone loading was
      first implemented in commit 8a2ab2b9.  However, unlike those other
      functions, asynchronous zone loading events currently have no way of
      getting canceled once they get posted, which means the aforementioned
      code is effectively dead.  Remove it to prevent confusion.
      b9e9361c
    • Michał Kępień's avatar
      Only clear DNS_ZONEFLG_LOADPENDING in zone_asyncload() if zone loading is completed immediately · 29b7efdd
      Michał Kępień authored
      zone_load() is not always synchronous, it may only initiate an
      asynchronous load and return DNS_R_CONTINUE, which means zone loading
      has not yet been completed.  In such a case, zone_asyncload() must not
      clear DNS_ZONEFLG_LOADPENDING immediately and leave that up to
      zone_postload().
      29b7efdd
    • Michał Kępień's avatar
      Lock zone before checking whether its asynchronous load is already pending · 0e4fba2c
      Michał Kępień authored
      While this is not an issue in named, which only calls
      dns_zone_asyncload() from task-exclusive mode, this function is exported
      by libdns and thus may in theory be concurrently called for the same
      zone by multiple threads.  It also does not hurt to be consistent
      locking-wise with other DNS_ZONEFLG_LOADPENDING accesses.
      0e4fba2c
  2. 14 Feb, 2018 4 commits
  3. 12 Feb, 2018 23 commits
  4. 11 Feb, 2018 1 commit
  5. 10 Feb, 2018 1 commit
  6. 09 Feb, 2018 1 commit