mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 01:12:07 -04:00
slight optimization for dns_rbt_findnode() when bitstrings are involved:
skip the hashing attempts entirely when not at the root of a level
This commit is contained in:
parent
68f4a1696f
commit
7fe56f41ec
1 changed files with 12 additions and 2 deletions
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: rbt.c,v 1.113 2001/05/31 21:52:22 tale Exp $ */
|
||||
/* $Id: rbt.c,v 1.114 2001/05/31 22:32:46 tale Exp $ */
|
||||
|
||||
/* Principal Authors: DCL */
|
||||
|
||||
|
|
@ -860,7 +860,17 @@ dns_rbt_findnode(dns_rbt_t *rbt, dns_name_t *name, dns_name_t *foundname,
|
|||
unsigned int hash;
|
||||
isc_boolean_t has_bitstring = ISC_FALSE;
|
||||
|
||||
if (rbt->hashtable == NULL)
|
||||
/*
|
||||
* If there is no hash table, hashing can't be done.
|
||||
* Similarly, when current != current_root, that
|
||||
* means a left or right pointer was followed, which
|
||||
* only happens when the algorithm fell through to
|
||||
* the traditional binary search because of a
|
||||
* bitstring label, so that traditional search
|
||||
* should be continued.
|
||||
*/
|
||||
if (rbt->hashtable == NULL ||
|
||||
current != current_root)
|
||||
goto nohash;
|
||||
|
||||
nlabels = dns_name_countlabels(search_name);
|
||||
|
|
|
|||
Loading…
Reference in a new issue