Mercurial > hg > nginx-quic
comparison src/core/ngx_resolver.c @ 6456:c94aba230a5a
Resolver: introduced valid field in resolver responses.
It hints the amount of time a response could be considered
as valid.
author | Dmitry Volyntsev <xeioex@nginx.com> |
---|---|
date | Wed, 23 Mar 2016 17:44:36 +0300 |
parents | a6a5bacf6b74 |
children | a6711b85da83 |
comparison
equal
deleted
inserted
replaced
6455:ad2360782ecd | 6456:c94aba230a5a |
---|---|
549 | 549 |
550 /* unlock name mutex */ | 550 /* unlock name mutex */ |
551 | 551 |
552 do { | 552 do { |
553 ctx->state = NGX_OK; | 553 ctx->state = NGX_OK; |
554 ctx->valid = rn->valid; | |
554 ctx->naddrs = naddrs; | 555 ctx->naddrs = naddrs; |
555 | 556 |
556 if (addrs == NULL) { | 557 if (addrs == NULL) { |
557 ctx->addrs = &ctx->addr; | 558 ctx->addrs = &ctx->addr; |
558 ctx->addr.sockaddr = (struct sockaddr *) &ctx->sin; | 559 ctx->addr.sockaddr = (struct sockaddr *) &ctx->sin; |
595 | 596 |
596 /* unlock name mutex */ | 597 /* unlock name mutex */ |
597 | 598 |
598 do { | 599 do { |
599 ctx->state = NGX_RESOLVE_NXDOMAIN; | 600 ctx->state = NGX_RESOLVE_NXDOMAIN; |
601 ctx->valid = ngx_time() + (r->valid ? r->valid : 10); | |
600 next = ctx->next; | 602 next = ctx->next; |
601 | 603 |
602 ctx->handler(ctx); | 604 ctx->handler(ctx); |
603 | 605 |
604 ctx = next; | 606 ctx = next; |
857 ctx->name.data = name; | 859 ctx->name.data = name; |
858 | 860 |
859 /* unlock addr mutex */ | 861 /* unlock addr mutex */ |
860 | 862 |
861 ctx->state = NGX_OK; | 863 ctx->state = NGX_OK; |
864 ctx->valid = rn->valid; | |
862 | 865 |
863 ctx->handler(ctx); | 866 ctx->handler(ctx); |
864 | 867 |
865 ngx_resolver_free(r, name); | 868 ngx_resolver_free(r, name); |
866 | 869 |
1946 /* unlock name mutex */ | 1949 /* unlock name mutex */ |
1947 | 1950 |
1948 while (next) { | 1951 while (next) { |
1949 ctx = next; | 1952 ctx = next; |
1950 ctx->state = code; | 1953 ctx->state = code; |
1954 ctx->valid = ngx_time() + (r->valid ? r->valid : 10); | |
1951 next = ctx->next; | 1955 next = ctx->next; |
1952 | 1956 |
1953 ctx->handler(ctx); | 1957 ctx->handler(ctx); |
1954 } | 1958 } |
1955 | 1959 |
2260 /* unlock name mutex */ | 2264 /* unlock name mutex */ |
2261 | 2265 |
2262 while (next) { | 2266 while (next) { |
2263 ctx = next; | 2267 ctx = next; |
2264 ctx->state = NGX_OK; | 2268 ctx->state = NGX_OK; |
2269 ctx->valid = rn->valid; | |
2265 ctx->naddrs = naddrs; | 2270 ctx->naddrs = naddrs; |
2266 | 2271 |
2267 if (addrs == NULL) { | 2272 if (addrs == NULL) { |
2268 ctx->addrs = &ctx->addr; | 2273 ctx->addrs = &ctx->addr; |
2269 ctx->addr.sockaddr = (struct sockaddr *) &ctx->sin; | 2274 ctx->addr.sockaddr = (struct sockaddr *) &ctx->sin; |
2539 /* unlock addr mutex */ | 2544 /* unlock addr mutex */ |
2540 | 2545 |
2541 while (next) { | 2546 while (next) { |
2542 ctx = next; | 2547 ctx = next; |
2543 ctx->state = code; | 2548 ctx->state = code; |
2549 ctx->valid = ngx_time() + (r->valid ? r->valid : 10); | |
2544 next = ctx->next; | 2550 next = ctx->next; |
2545 | 2551 |
2546 ctx->handler(ctx); | 2552 ctx->handler(ctx); |
2547 } | 2553 } |
2548 | 2554 |
2673 /* unlock addr mutex */ | 2679 /* unlock addr mutex */ |
2674 | 2680 |
2675 while (next) { | 2681 while (next) { |
2676 ctx = next; | 2682 ctx = next; |
2677 ctx->state = NGX_OK; | 2683 ctx->state = NGX_OK; |
2684 ctx->valid = rn->valid; | |
2678 ctx->name = name; | 2685 ctx->name = name; |
2679 next = ctx->next; | 2686 next = ctx->next; |
2680 | 2687 |
2681 ctx->handler(ctx); | 2688 ctx->handler(ctx); |
2682 } | 2689 } |