mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 09:42:39 +08:00
Resolver: introduced valid field in resolver responses.
It hints the amount of time a response could be considered as valid.
This commit is contained in:
parent
0f4315f998
commit
98f222c6c1
@ -551,6 +551,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx,
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
ctx->state = NGX_OK;
|
ctx->state = NGX_OK;
|
||||||
|
ctx->valid = rn->valid;
|
||||||
ctx->naddrs = naddrs;
|
ctx->naddrs = naddrs;
|
||||||
|
|
||||||
if (addrs == NULL) {
|
if (addrs == NULL) {
|
||||||
@ -597,6 +598,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx,
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
ctx->state = NGX_RESOLVE_NXDOMAIN;
|
ctx->state = NGX_RESOLVE_NXDOMAIN;
|
||||||
|
ctx->valid = ngx_time() + (r->valid ? r->valid : 10);
|
||||||
next = ctx->next;
|
next = ctx->next;
|
||||||
|
|
||||||
ctx->handler(ctx);
|
ctx->handler(ctx);
|
||||||
@ -859,6 +861,7 @@ ngx_resolve_addr(ngx_resolver_ctx_t *ctx)
|
|||||||
/* unlock addr mutex */
|
/* unlock addr mutex */
|
||||||
|
|
||||||
ctx->state = NGX_OK;
|
ctx->state = NGX_OK;
|
||||||
|
ctx->valid = rn->valid;
|
||||||
|
|
||||||
ctx->handler(ctx);
|
ctx->handler(ctx);
|
||||||
|
|
||||||
@ -1948,6 +1951,7 @@ ngx_resolver_process_a(ngx_resolver_t *r, u_char *buf, size_t n,
|
|||||||
while (next) {
|
while (next) {
|
||||||
ctx = next;
|
ctx = next;
|
||||||
ctx->state = code;
|
ctx->state = code;
|
||||||
|
ctx->valid = ngx_time() + (r->valid ? r->valid : 10);
|
||||||
next = ctx->next;
|
next = ctx->next;
|
||||||
|
|
||||||
ctx->handler(ctx);
|
ctx->handler(ctx);
|
||||||
@ -2262,6 +2266,7 @@ ngx_resolver_process_a(ngx_resolver_t *r, u_char *buf, size_t n,
|
|||||||
while (next) {
|
while (next) {
|
||||||
ctx = next;
|
ctx = next;
|
||||||
ctx->state = NGX_OK;
|
ctx->state = NGX_OK;
|
||||||
|
ctx->valid = rn->valid;
|
||||||
ctx->naddrs = naddrs;
|
ctx->naddrs = naddrs;
|
||||||
|
|
||||||
if (addrs == NULL) {
|
if (addrs == NULL) {
|
||||||
@ -2541,6 +2546,7 @@ valid:
|
|||||||
while (next) {
|
while (next) {
|
||||||
ctx = next;
|
ctx = next;
|
||||||
ctx->state = code;
|
ctx->state = code;
|
||||||
|
ctx->valid = ngx_time() + (r->valid ? r->valid : 10);
|
||||||
next = ctx->next;
|
next = ctx->next;
|
||||||
|
|
||||||
ctx->handler(ctx);
|
ctx->handler(ctx);
|
||||||
@ -2675,6 +2681,7 @@ ptr:
|
|||||||
while (next) {
|
while (next) {
|
||||||
ctx = next;
|
ctx = next;
|
||||||
ctx->state = NGX_OK;
|
ctx->state = NGX_OK;
|
||||||
|
ctx->valid = rn->valid;
|
||||||
ctx->name = name;
|
ctx->name = name;
|
||||||
next = ctx->next;
|
next = ctx->next;
|
||||||
|
|
||||||
|
@ -164,6 +164,7 @@ struct ngx_resolver_ctx_s {
|
|||||||
ngx_int_t state;
|
ngx_int_t state;
|
||||||
ngx_str_t name;
|
ngx_str_t name;
|
||||||
|
|
||||||
|
time_t valid;
|
||||||
ngx_uint_t naddrs;
|
ngx_uint_t naddrs;
|
||||||
ngx_addr_t *addrs;
|
ngx_addr_t *addrs;
|
||||||
ngx_addr_t addr;
|
ngx_addr_t addr;
|
||||||
|
Loading…
Reference in New Issue
Block a user