is a persistent overlimit condition.
858. [func] isc_mem_setwater() no longer requires that when the
callback function is non-NULL then its hi_water
argument must be greater than its lo_water argument
(they can now be equal) or that they be non-zero.
857. [cleanup] Use ISC_MAGIC() to define all magic numbers for
structs, for our friends in EBCDIC-land.
wait at least six seconds between each pass of the tree. This keeps
the CPU from being bogged down in a persistent overlimit condition, and
because it uses timers also lets the cache cleaner know right away when
the server is being shut down, so it can stop trying to clean.
Also fixed an unlocked access to cache->live_tasks in dns_cache_detach().
Also fixed a problem with repeated calls to dns_cache_setcachesize() setting
the database as not overmem, even though it might have still been in
the process of cleaning from a previous limit. Just set the new
isc_mem_setwater() limits instead and let the mem.c call water() if cleaning
needs to be either started or stopped because of the new limits.
Minor code cleanups.
is not null then hi_water must exceed lo_water and both must be > 0.
Now requires hi_water >= lo_water, and they can both be 0. Not allowing
them to be equal was just an unnecessary restriction, and letting them be 0
is useful for the case where the context has had non-zero values set, went
over hi_water and called the callback, and then wanted to remove limits
(perhaps because of a reconfiguration). This allows the callback to
be signaled as ISC_MEM_LOWATER on the next isc_mem_put(), which the caller
might need to terminate any outstanding action that was triggered by
the hi_water.
removes no longer configured listeners into the block that actually
updates/add listeners, because when ns_controls_configure() recursively
calls itself to configure a 127.1 channel if there is no controls() statement,
the top level ns_controls_configure() was shutting down the channel that
the enclosing ns_controls_configure() just created.
850. [bug] dns_rbt_findnode() would not find nodes that were
split on a bitstring label somewhere other than in
the last label of the node. [RT #1351]
849. [func] <isc/net.h> will ensure INADDR_LOOPBACK is defined.
848. [func] A minimum max-cache-size of two megabytes is enforced
by the cache cleaner.
847. [func] Added isc_file_test(), which currently only has
some very basic functionality to test for the
existence of a file, whether a pathname is absolute,
or whether a pathname is the fundamental representation
of the current directory. It is intended that this
function can be expanded to test other things a
programmer might want to know about a file.
846. [func] A non-zero 'param' do dst_key_generate() when making an
hmac-md5 key means that good entropy is not required.
845. [bug] The access rights on the public file of a symmetric
key are now restricted as soon as the file is opened,
rather than after it has been written and closed.
844. [func] <isc/net.h> will ensure INADDR_LOOPBACK is defined,
just as <lwres/net.h> does.
843. [func] If no controls statement is present in named.conf,
or if any inet phrase of a controls statement is
lacking a keys clause, then a key will be automatically
generated by named and an rndc.conf-style file
named named.key will be written that uses it. rndc
will use this file only if its normal configuration
file, or one provided on the command line, does not
exist.
required good entropy only when 'param' (to dst_key_generate) was non-zero.
Since the default was always to require good entropy, that default behavior
has been restored and now a non-zero param means that pseudorandom is ok.