was found is in the topmost tree; so compare > 0 rather than != 0.
cast RBTDB_RDATATYPE_{BASE,EXT}() to dns_rdatatype_t to shut up NT's CL.
The value of each is already suitably bit masked to dns_rdatatype_t size.
#undef IGNORE before making a new definition; CL's winbase.h defines it.
2nd parameter of allocate_version changed from "unsigned int serial" to
"rbtdb_serial_t serial" to have proper sizing when compiled as rbtdb64.c.
cast header->type in two function calls to dns_rdatatype_t.
result is DNS_R_UNCHANGED.
Adjust find_deepest_zonecut() to deal with the new treatment of level_matches
by the RBT code. These changes, combined with the RBT changes, fix a bug
where the wrong delegation was returned if the partial match was a terminal
node in the RBT.
Deal with wildcards of the form *.<zone_origin>. This stops us from
treating the zone top as a delegation point if wildcards are present.
delegating_type() was erroneously returning true for type NS records in a
cache database.
also failed to handle the case where it had discovered that a node didn't
exist, had unlocked and relocked the tree (into write mode), and then had
attempted to add the node and got DNS_R_EXISTS as the result. (I.e. someone
beat us in the race to create the node.) In this case, an error would have
been returned. The correct behavior is to succeed (being sure to increment
the node reference count).
incorrectly treat it as if the IGNORE attribute were not set, and the add
would not work correctly. Rdatasets marked IGNORE are now ignored.
subtractrdataset() also failed to ignore rdatasets, and didn't cover the
case where the rdataset was marked as nonexistent.