Cast int c to char c; it was already range limited.
Cast isc_buffer_uint16 int argument to uint16; it was already range checked.
Cast isc_buffer_uint8 int argument to uint8; it was already range checked.
I was not entirely sure that all paths to the places where the INSISTS are
would have guaranteed that the unsigned int rdata.length was in the range
of an unsigned short.
Cast bitshifts to isc_uint8_t in encode_win32(); yes, dear compiler, we know
there is a loss of precision. That's exactly what we want to happen here.
I was not entirely sure that all paths to the places where the INSISTS are
would have guaranteed that the unsigned int rdata.length was in the range
of an unsigned short.
Detach from our fetch as soon as it is done. (Not doing this meant we
couldn't recurse again when restarting.)
Fix some bugs in the multiple question code that were causing qtype to be
set incorrectly when restarting after recursion.
Updated documentation for dns_rbt_findnode to describe more what
happens with various return values, and that the chain points to the
DNSSEC predecessor for all non-error returns.
New documentation for dns_rbtnodechain_{prev,next}.
Updated documentation for other dns_rbtnodechain_*.
deletion bug fixed that could orphan a large section of the tree. the
"parent" argument to rotate_left or rotate_right was sometimes not
really the parent of the rotation vertex, because the parent's parent
was not correctly reidentified after a rotation done on the parent.
Minor:
forward static declaration of dns_rbt_printnodename, useful in debugging.
level_matches set correctly for exact match in dns_rbt_findnode (it was
one too few, but this was minor because as yet level_matches is only
used by other code when a partial match was made.
insist 'node' is a child of 'parent' in rotate_left and rotate_right
compare a pointer explicitly to NULL that was just "if (pointer)"
"would would" in a comment changed to just one "would".