Lines Matching refs:current

217 dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order,
372 dns_rbtnode_t **root, *parent, *child, *current, *new_current;
417 current = NULL;
426 current = child;
428 NODENAME(current, &current_name);
433 *nodep = current;
442 parent = current;
443 child = LEFT(current);
446 parent = current;
447 child = RIGHT(current);
454 * name at the current node. If the name at
455 * the current node is shorter, that means the
457 * name at the current node is longer, that means
478 root = &DOWN(current);
482 PARENT(*root) == current));
485 child = DOWN(current);
486 ADD_LEVEL(&chain, current);
491 * than the number of labels at the current
492 * node, so the current node must be adjusted
537 * current node.
539 new_current->is_root = current->is_root;
540 new_current->nsec3 = current->nsec3;
541 PARENT(new_current) = PARENT(current);
542 LEFT(new_current) = LEFT(current);
543 RIGHT(new_current) = RIGHT(current);
544 COLOR(new_current) = COLOR(current);
547 * Fix pointers that were to the current node.
550 if (LEFT(parent) == current)
561 if (*root == current)
564 NAMELEN(current) = prefix->length;
565 OFFSETLEN(current) = prefix->labels;
572 current->is_root = 1;
573 PARENT(current) = new_current;
574 DOWN(new_current) = current;
579 LEFT(current) = NULL;
580 RIGHT(current) = NULL;
582 MAKE_BLACK(current);
583 ATTRS(current) &= ~DNS_NAMEATTR_ABSOLUTE;
603 * The current node has no data,
633 dns_rbt_addonlevel(new_current, current, order, root);
681 dns_rbtnode_t *current, *last_compared, *current_root;
738 current = rbt->root;
741 while (current != NULL) {
742 NODENAME(current, &current_name);
745 last_compared = current;
766 * The case of current != current_root, that
773 INSIST(current == current_root);
778 * current_root is the root of the current level, so
814 current = hnode;
843 current = NULL;
852 current = LEFT(current);
854 current = RIGHT(current);
861 * the current node's name length, then follow the
867 * Whack off the current node's common parts
876 if (DATA(current) != NULL ||
878 *node = current;
882 * needs to be done before 'current' is pointed
884 * block of code needs the current 'current',
891 ADD_LEVEL(chain, current);
901 FINDCALLBACK(current)) {
910 result = (callback)(current,
919 current = NULL;
927 current = DOWN(current);
928 current_root = current;
940 current = NULL;
946 * If current is not NULL, NOEXACT is not disallowing exact matches,
950 if (current != NULL && (options & DNS_RBTFIND_NOEXACT) == 0 &&
951 (DATA(current) != NULL ||
956 chain->end = current;
965 *node = current;
1009 if (current != NULL) {
1023 DATA(current) == NULL));
1024 chain->end = current;
1057 * Point current to the node that stopped
1066 * The assignment of current to NULL when
1074 current = last_compared;
1076 current = NULL;
1078 while (current != NULL) {
1079 NODENAME(current, &current_name);
1087 last_compared = current;
1093 current = LEFT(current);
1095 current = RIGHT(current);
1099 current = last_compared;
1129 if (DOWN(current) != NULL) {
1130 ADD_LEVEL(chain, current);
1134 DOWN(current));
1144 chain->end = current;
1149 chain->end = current;
1370 dns_name_t current;
1377 dns_name_init(&current, NULL);
1383 NODENAME(node, &current);
1385 result = dns_name_concatenate(name, &current, name, NULL);
1662 dns_rbt_addonlevel(dns_rbtnode_t *node, dns_rbtnode_t *current, int order,
1672 REQUIRE(current != NULL);
1681 PARENT(node) = current;
1693 NODENAME(current, &current_name);
1696 INSIST(LEFT(current) == NULL);
1697 LEFT(current) = node;
1699 INSIST(RIGHT(current) == NULL);
1700 RIGHT(current) = node;
1704 PARENT(node) = current;
2269 dns_rbtnode_t *current, *previous, *predecessor;
2277 current = chain->end;
2279 if (LEFT(current) != NULL) {
2284 current = LEFT(current);
2286 while (RIGHT(current) != NULL)
2287 current = RIGHT(current);
2289 predecessor = current;
2298 while (! IS_ROOT(current)) {
2299 previous = current;
2300 current = PARENT(current);
2302 if (RIGHT(current) == previous) {
2303 predecessor = current;
2349 INSIST(chain->level_count > 0 && IS_ROOT(current));
2386 dns_rbtnode_t *current, *successor;
2394 current = chain->end;
2396 if (DOWN(current) != NULL) {
2403 OFFSETLEN(current) > 1)
2406 ADD_LEVEL(chain, current);
2407 current = DOWN(current);
2409 while (LEFT(current) != NULL)
2410 current = LEFT(current);
2412 successor = current;
2448 dns_rbtnode_t *current, *previous, *successor;
2455 current = chain->end;
2457 if (RIGHT(current) == NULL) {
2458 while (! IS_ROOT(current)) {
2459 previous = current;
2460 current = PARENT(current);
2462 if (LEFT(current) == previous) {
2463 successor = current;
2468 current = RIGHT(current);
2470 while (LEFT(current) != NULL)
2471 current = LEFT(current);
2473 successor = current;
2493 dns_rbtnode_t *current, *previous, *successor;
2501 current = chain->end;
2507 if (DOWN(current) != NULL) {
2514 OFFSETLEN(current) > 1)
2517 ADD_LEVEL(chain, current);
2518 current = DOWN(current);
2520 while (LEFT(current) != NULL)
2521 current = LEFT(current);
2523 successor = current;
2525 } else if (RIGHT(current) == NULL) {
2537 while (! IS_ROOT(current)) {
2538 previous = current;
2539 current = PARENT(current);
2541 if (LEFT(current) == previous) {
2542 successor = current;
2555 current = chain->levels[--chain->level_count];
2558 if (RIGHT(current) != NULL)
2564 if (successor == NULL && RIGHT(current) != NULL) {
2565 current = RIGHT(current);
2567 while (LEFT(current) != NULL)
2568 current = LEFT(current);
2570 successor = current;