rn 60 core/ngx_resolver.c ngx_resolver_node_t *rn); rn 61 core/ngx_resolver.c static ngx_int_t ngx_resolver_create_name_query(ngx_resolver_node_t *rn, rn 63 core/ngx_resolver.c static ngx_int_t ngx_resolver_create_addr_query(ngx_resolver_node_t *rn, rn 84 core/ngx_resolver.c static void ngx_resolver_free_node(ngx_resolver_t *r, ngx_resolver_node_t *rn); rn 199 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 203 core/ngx_resolver.c rn = (ngx_resolver_node_t *) ngx_rbtree_min(tree->root, tree->sentinel); rn 205 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 207 core/ngx_resolver.c for (ctx = rn->waiting; ctx; ctx = next) { rn 217 core/ngx_resolver.c ngx_rbtree_delete(tree, &rn->node); rn 219 core/ngx_resolver.c ngx_resolver_free_node(r, rn); rn 307 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 328 core/ngx_resolver.c rn = ngx_resolver_lookup_name(r, &ctx->name, hash); rn 330 core/ngx_resolver.c if (rn) { rn 331 core/ngx_resolver.c p = &rn->waiting; rn 332 core/ngx_resolver.c w = rn->waiting; rn 378 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 382 core/ngx_resolver.c rn = ngx_resolver_lookup_name(r, &ctx->name, hash); rn 384 core/ngx_resolver.c if (rn) { rn 386 core/ngx_resolver.c if (rn->valid >= ngx_time()) { rn 390 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 392 core/ngx_resolver.c rn->expire = ngx_time() + r->expire; rn 394 core/ngx_resolver.c ngx_queue_insert_head(&r->name_expire_queue, &rn->queue); rn 396 core/ngx_resolver.c naddrs = rn->naddrs; rn 404 core/ngx_resolver.c addrs = ngx_resolver_dup(r, rn->u.addrs, rn 411 core/ngx_resolver.c addr = rn->u.addr; rn 415 core/ngx_resolver.c ctx->next = rn->waiting; rn 416 core/ngx_resolver.c rn->waiting = NULL; rn 443 core/ngx_resolver.c ctx->name.len = rn->cnlen; rn 444 core/ngx_resolver.c ctx->name.data = rn->u.cname; rn 449 core/ngx_resolver.c ctx->next = rn->waiting; rn 450 core/ngx_resolver.c rn->waiting = NULL; rn 466 core/ngx_resolver.c if (rn->waiting) { rn 468 core/ngx_resolver.c ctx->next = rn->waiting; rn 469 core/ngx_resolver.c rn->waiting = ctx; rn 475 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 479 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->query); rn 480 core/ngx_resolver.c rn->query = NULL; rn 482 core/ngx_resolver.c if (rn->cnlen) { rn 483 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->u.cname); rn 486 core/ngx_resolver.c if (rn->naddrs > 1) { rn 487 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->u.addrs); rn 494 core/ngx_resolver.c rn = ngx_resolver_alloc(r, sizeof(ngx_resolver_node_t)); rn 495 core/ngx_resolver.c if (rn == NULL) { rn 499 core/ngx_resolver.c rn->name = ngx_resolver_dup(r, ctx->name.data, ctx->name.len); rn 500 core/ngx_resolver.c if (rn->name == NULL) { rn 501 core/ngx_resolver.c ngx_resolver_free(r, rn); rn 505 core/ngx_resolver.c rn->node.key = hash; rn 506 core/ngx_resolver.c rn->nlen = (u_short) ctx->name.len; rn 507 core/ngx_resolver.c rn->query = NULL; rn 509 core/ngx_resolver.c ngx_rbtree_insert(&r->name_rbtree, &rn->node); rn 512 core/ngx_resolver.c rc = ngx_resolver_create_name_query(rn, ctx); rn 519 core/ngx_resolver.c ngx_rbtree_delete(&r->name_rbtree, &rn->node); rn 521 core/ngx_resolver.c ngx_resolver_free(r, rn->query); rn 522 core/ngx_resolver.c ngx_resolver_free(r, rn->name); rn 523 core/ngx_resolver.c ngx_resolver_free(r, rn); rn 531 core/ngx_resolver.c if (ngx_resolver_send_query(r, rn) != NGX_OK) { rn 553 core/ngx_resolver.c rn->expire = ngx_time() + r->resend_timeout; rn 555 core/ngx_resolver.c ngx_queue_insert_head(&r->name_resend_queue, &rn->queue); rn 557 core/ngx_resolver.c rn->cnlen = 0; rn 558 core/ngx_resolver.c rn->naddrs = 0; rn 559 core/ngx_resolver.c rn->valid = 0; rn 560 core/ngx_resolver.c rn->waiting = ctx; rn 568 core/ngx_resolver.c ngx_rbtree_delete(&r->name_rbtree, &rn->node); rn 570 core/ngx_resolver.c if (rn->query) { rn 571 core/ngx_resolver.c ngx_resolver_free(r, rn->query); rn 574 core/ngx_resolver.c ngx_resolver_free(r, rn->name); rn 576 core/ngx_resolver.c ngx_resolver_free(r, rn); rn 587 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 595 core/ngx_resolver.c rn = ngx_resolver_lookup_addr(r, ctx->addr); rn 597 core/ngx_resolver.c if (rn) { rn 599 core/ngx_resolver.c if (rn->valid >= ngx_time()) { rn 603 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 605 core/ngx_resolver.c rn->expire = ngx_time() + r->expire; rn 607 core/ngx_resolver.c ngx_queue_insert_head(&r->addr_expire_queue, &rn->queue); rn 609 core/ngx_resolver.c name = ngx_resolver_dup(r, rn->name, rn->nlen); rn 614 core/ngx_resolver.c ctx->name.len = rn->nlen; rn 628 core/ngx_resolver.c if (rn->waiting) { rn 630 core/ngx_resolver.c ctx->next = rn->waiting; rn 631 core/ngx_resolver.c rn->waiting = ctx; rn 639 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 641 core/ngx_resolver.c ngx_resolver_free(r, rn->query); rn 642 core/ngx_resolver.c rn->query = NULL; rn 645 core/ngx_resolver.c rn = ngx_resolver_alloc(r, sizeof(ngx_resolver_node_t)); rn 646 core/ngx_resolver.c if (rn == NULL) { rn 650 core/ngx_resolver.c rn->node.key = ctx->addr; rn 651 core/ngx_resolver.c rn->query = NULL; rn 653 core/ngx_resolver.c ngx_rbtree_insert(&r->addr_rbtree, &rn->node); rn 656 core/ngx_resolver.c if (ngx_resolver_create_addr_query(rn, ctx) != NGX_OK) { rn 660 core/ngx_resolver.c if (ngx_resolver_send_query(r, rn) != NGX_OK) { rn 680 core/ngx_resolver.c rn->expire = ngx_time() + r->resend_timeout; rn 682 core/ngx_resolver.c ngx_queue_insert_head(&r->addr_resend_queue, &rn->queue); rn 684 core/ngx_resolver.c rn->cnlen = 0; rn 685 core/ngx_resolver.c rn->naddrs = 0; rn 686 core/ngx_resolver.c rn->name = NULL; rn 687 core/ngx_resolver.c rn->nlen = 0; rn 688 core/ngx_resolver.c rn->valid = 0; rn 689 core/ngx_resolver.c rn->waiting = ctx; rn 699 core/ngx_resolver.c if (rn) { rn 700 core/ngx_resolver.c ngx_rbtree_delete(&r->addr_rbtree, &rn->node); rn 702 core/ngx_resolver.c if (rn->query) { rn 703 core/ngx_resolver.c ngx_resolver_free(r, rn->query); rn 706 core/ngx_resolver.c ngx_resolver_free(r, rn); rn 727 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 742 core/ngx_resolver.c rn = ngx_resolver_lookup_addr(r, ctx->addr); rn 744 core/ngx_resolver.c if (rn) { rn 745 core/ngx_resolver.c p = &rn->waiting; rn 746 core/ngx_resolver.c w = rn->waiting; rn 792 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 805 core/ngx_resolver.c rn = ngx_queue_data(q, ngx_resolver_node_t, queue); rn 807 core/ngx_resolver.c if (now <= rn->expire) { rn 812 core/ngx_resolver.c "resolver expire \"%*s\"", (size_t) rn->nlen, rn->name); rn 816 core/ngx_resolver.c ngx_rbtree_delete(tree, &rn->node); rn 818 core/ngx_resolver.c ngx_resolver_free_node(r, rn); rn 824 core/ngx_resolver.c ngx_resolver_send_query(ngx_resolver_t *r, ngx_resolver_node_t *rn) rn 841 core/ngx_resolver.c n = ngx_send(uc->connection, rn->query, rn->qlen); rn 847 core/ngx_resolver.c if ((size_t) n != (size_t) rn->qlen) { rn 900 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 911 core/ngx_resolver.c rn = ngx_queue_data(q, ngx_resolver_node_t, queue); rn 913 core/ngx_resolver.c if (now < rn->expire) { rn 914 core/ngx_resolver.c return rn->expire - now; rn 919 core/ngx_resolver.c (size_t) rn->nlen, rn->name, rn->waiting); rn 923 core/ngx_resolver.c if (rn->waiting) { rn 925 core/ngx_resolver.c if (ngx_resolver_send_query(r, rn) == NGX_OK) { rn 927 core/ngx_resolver.c rn->expire = now + r->resend_timeout; rn 929 core/ngx_resolver.c ngx_queue_insert_head(queue, &rn->queue); rn 935 core/ngx_resolver.c ngx_rbtree_delete(tree, &rn->node); rn 937 core/ngx_resolver.c ngx_resolver_free_node(r, rn); rn 973 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 1009 core/ngx_resolver.c rn = ngx_queue_data(q, ngx_resolver_node_t, queue); rn 1010 core/ngx_resolver.c qident = (rn->query[0] << 8) + rn->query[1]; rn 1016 core/ngx_resolver.c rn->nlen, rn->name); rn 1128 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 1140 core/ngx_resolver.c rn = ngx_resolver_lookup_name(r, &name, hash); rn 1142 core/ngx_resolver.c if (rn == NULL || rn->query == NULL) { rn 1148 core/ngx_resolver.c qident = (rn->query[0] << 8) + rn->query[1]; rn 1164 core/ngx_resolver.c next = rn->waiting; rn 1165 core/ngx_resolver.c rn->waiting = NULL; rn 1167 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 1169 core/ngx_resolver.c ngx_rbtree_delete(&r->name_rbtree, &rn->node); rn 1171 core/ngx_resolver.c ngx_resolver_free_node(r, rn); rn 1266 core/ngx_resolver.c rn->u.addr = addr; rn 1317 core/ngx_resolver.c rn->u.addrs = addrs; rn 1319 core/ngx_resolver.c addrs = ngx_resolver_dup(r, rn->u.addrs, rn 1326 core/ngx_resolver.c rn->naddrs = (u_short) naddrs; rn 1328 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 1330 core/ngx_resolver.c rn->valid = ngx_time() + r->valid; rn 1331 core/ngx_resolver.c rn->expire = ngx_time() + r->expire; rn 1333 core/ngx_resolver.c ngx_queue_insert_head(&r->name_expire_queue, &rn->queue); rn 1335 core/ngx_resolver.c next = rn->waiting; rn 1336 core/ngx_resolver.c rn->waiting = NULL; rn 1368 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 1370 core/ngx_resolver.c rn->cnlen = (u_short) name.len; rn 1371 core/ngx_resolver.c rn->u.cname = name.data; rn 1372 core/ngx_resolver.c rn->valid = ngx_time() + r->valid; rn 1373 core/ngx_resolver.c rn->expire = ngx_time() + r->expire; rn 1375 core/ngx_resolver.c ngx_queue_insert_head(&r->name_expire_queue, &rn->queue); rn 1377 core/ngx_resolver.c ctx = rn->waiting; rn 1378 core/ngx_resolver.c rn->waiting = NULL; rn 1428 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 1455 core/ngx_resolver.c rn = ngx_resolver_lookup_addr(r, addr); rn 1457 core/ngx_resolver.c if (rn == NULL || rn->query == NULL) { rn 1465 core/ngx_resolver.c qident = (rn->query[0] << 8) + rn->query[1]; rn 1480 core/ngx_resolver.c next = rn->waiting; rn 1481 core/ngx_resolver.c rn->waiting = NULL; rn 1483 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 1485 core/ngx_resolver.c ngx_rbtree_delete(&r->addr_rbtree, &rn->node); rn 1487 core/ngx_resolver.c ngx_resolver_free_node(r, rn); rn 1536 core/ngx_resolver.c if (name.len != (size_t) rn->nlen rn 1537 core/ngx_resolver.c || ngx_strncmp(name.data, rn->name, name.len) != 0) rn 1539 core/ngx_resolver.c if (rn->nlen) { rn 1540 core/ngx_resolver.c ngx_resolver_free(r, rn->name); rn 1543 core/ngx_resolver.c rn->nlen = (u_short) name.len; rn 1544 core/ngx_resolver.c rn->name = name.data; rn 1546 core/ngx_resolver.c name.data = ngx_resolver_dup(r, rn->name, name.len); rn 1552 core/ngx_resolver.c ngx_queue_remove(&rn->queue); rn 1554 core/ngx_resolver.c rn->valid = ngx_time() + r->valid; rn 1555 core/ngx_resolver.c rn->expire = ngx_time() + r->expire; rn 1557 core/ngx_resolver.c ngx_queue_insert_head(&r->addr_expire_queue, &rn->queue); rn 1559 core/ngx_resolver.c next = rn->waiting; rn 1560 core/ngx_resolver.c rn->waiting = NULL; rn 1608 core/ngx_resolver.c ngx_resolver_node_t *rn; rn 1628 core/ngx_resolver.c rn = (ngx_resolver_node_t *) node; rn 1630 core/ngx_resolver.c rc = ngx_memn2cmp(name->data, rn->name, name->len, rn->nlen); rn 1633 core/ngx_resolver.c return rn; rn 1685 core/ngx_resolver.c ngx_resolver_node_t *rn, *rn_temp; rn 1699 core/ngx_resolver.c rn = (ngx_resolver_node_t *) node; rn 1702 core/ngx_resolver.c p = (ngx_memn2cmp(rn->name, rn_temp->name, rn->nlen, rn_temp->nlen) rn 1722 core/ngx_resolver.c ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx) rn 1739 core/ngx_resolver.c rn->qlen = (u_short) len; rn 1740 core/ngx_resolver.c rn->query = p; rn 1803 core/ngx_resolver.c ngx_resolver_create_addr_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx) rn 1820 core/ngx_resolver.c rn->query = p; rn 1848 core/ngx_resolver.c rn->qlen = (u_short) rn 1850 core/ngx_resolver.c - rn->query); rn 1965 core/ngx_resolver.c ngx_resolver_free_node(ngx_resolver_t *r, ngx_resolver_node_t *rn) rn 1969 core/ngx_resolver.c if (rn->query) { rn 1970 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->query); rn 1973 core/ngx_resolver.c if (rn->name) { rn 1974 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->name); rn 1977 core/ngx_resolver.c if (rn->cnlen) { rn 1978 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->u.cname); rn 1981 core/ngx_resolver.c if (rn->naddrs > 1) { rn 1982 core/ngx_resolver.c ngx_resolver_free_locked(r, rn->u.addrs); rn 1985 core/ngx_resolver.c ngx_resolver_free_locked(r, rn);