and make the rbtdb, zone, and view objects use it.
This should reduce contention on other locks, since (in the normal)
implementation, the reference count has its own lock. In the future, it
should also be possible to implement an isc_refcount_t with atomic operations
instead of mutexes, which should also help performance.
removes some unused code in view.c and uncomments some code in cache.c.
This still isn't really usable, since the trust level of cached data is
not persistent, so all data in the persistent cache will be promoted to
"ultimate" trust on reload.
and changed header comments to make it clear that it is for debugging/analysis purposes and may
dump other stuff in addition to the cache in the future. Also changed the dump style to the
'explict TTL' one, which makes more sense than usin when dumping cache files since the TTLs
tend to be different in each rrset, and added a comment banner at the top of each cache dump
containing the view name.
with yes being the default. These control searching in the cache and
other zones we are authorative for. This is mostly for gdib, but
may be useful elsewhere.
The config changes are renaming from glue-from-* to additional-from-*,
since this also prevents DNAME, CNAME, NS, MX, etc. additional data
from being followed.
both a 'listen-on' and a 'listen-on-v6' ACL. We are still waiting for
the 'listen-on-v6' config file option to set the latter explicitly,
but at least the default value now tracks the 'port' option and the
'-p' command line option.
reversing part of the changes made on 2000/05/17. Doing an explicit
zone shutdown on destruction of the zone table caused the zone to
be shut down prematurely on server reload when the zone table was
destroyed but the zone had already been attached to a new zone table.
An external reference count is needed to correctly handle this situation.
dns_dispatch_create() no longer exists. dns_dispatch_createtcp()
and dns_dispatch_getudp() are the replacements. _createtcp() takes
a bound, connected TCP socket, while _getudp() will search for
a sharable UDP socket, and if found, attach to it and return a
pointer to it. If one is not found, it will create a udp socket,
bind it to a supplied local address, and create a new dispatcher
around it.
dns_dispatch_remove{request,response}() no longer take the dispatch
as an argument.
query-source can now be set per view.
The dispatch manager holds onto three memory pools, one for
allocating dispatchers from, one for events, and one for
requests/replies. The free list on these pools is hard-coded,
but set to 1024. This keeps us from having to dig into the
isc_mem_t the pools draw from as often.
dns_resolver_create() and dns_view_createresolver() require that
valid dispatchers be passed in; dispatchers are no longer created
for the caller.
involved extensive restructuring of the reference counting of
zones and related objects.
Zones now attach to their views. To avoid a circular dependency that
would keep views from ever shutting down, this is done using the new
functions dns_view_weakattach() / dns_view_weakdetach() which
guarantee that the view will not be freed but still allow it
to be shut down.
The zones themselves now only have a single reference count, with
similar "weak" semantics. Managed zones must now be shut down
explicitly by calling dns_zone_shutdown(). To shut down all
zones in a zone table, call dns_zt_shutdown().
The zone manager is now reference counted, weakly. To shut down the
zone manager, you must explicitly call dns_zonemgr_shutdown().
170. [cleanup] Remove inter server consistancy checks from zone,
these should return as a seperate module in 9.1.
dns_zone_checkservers(), dns_zone_checkparents(),
dns_zone_checkchildren(), dns_zone_checkglue().
Remove dns_zone_setadb(), dns_zone_setresolver(),
dns_zone_setrequestmgr() these should now be found
via the view.
Cleanup of redundant/useless header file inclusion.
ISC style lint, primarily for function declarations and standalone
comments -- ie, those that appear on a line without any code, which
should be written as follows:
/*
* This is a comment.
*/