dns_qp_lookup() doesn't handle searches for escaped characters well
in QP keys, characters that are not common in DNS names are encoded as two-octet sequences. this caused a glitch in iterator positioning when some lookups failed.
consider the case where we're searching for \009
(represented in a QP key as {0x03, 0x0c}
) and a branch exists for \000
(represented as {0x03, 0x03}
). we match on the 0x03
, and continue to search down. at the point where we find we have no match, we need to pop back up to the branch before the 0x03
- which may be multiple levels up the stack - before we position the iterator.
Closes #4702 (closed)