diff options
author | Dmitry Volyntsev <xeioex@nginx.com> | 2016-12-16 18:21:55 +0300 |
---|---|---|
committer | Dmitry Volyntsev <xeioex@nginx.com> | 2016-12-16 18:21:55 +0300 |
commit | e114960e5353b6e2db82251872300955cfc0169b (patch) | |
tree | 1957ab904ecb4b530c1024845d74ed32913609f4 /src/core/ngx_resolver.c | |
parent | 6b18bb541e81acdc42968071d200c03f9ef8d4a1 (diff) | |
download | nginx-e114960e5353b6e2db82251872300955cfc0169b.tar.gz nginx-e114960e5353b6e2db82251872300955cfc0169b.zip |
Resolver: fixed a race between parallel name and addr resolves.
Previously, ngx_resolve_name() and ngx_resolve_addr() may have
rescheduled the resend timer while it was already in progress.
Diffstat (limited to 'src/core/ngx_resolver.c')
-rw-r--r-- | src/core/ngx_resolver.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index d5f06eb1d..54e037de0 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -875,7 +875,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx, ngx_add_timer(ctx->event, ctx->timeout); } - if (ngx_queue_empty(resend_queue)) { + if (ngx_resolver_resend_empty(r)) { ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); } @@ -1098,7 +1098,7 @@ ngx_resolve_addr(ngx_resolver_ctx_t *ctx) ngx_add_timer(ctx->event, ctx->timeout); } - if (ngx_queue_empty(resend_queue)) { + if (ngx_resolver_resend_empty(r)) { ngx_add_timer(r->event, (ngx_msec_t) (r->resend_timeout * 1000)); } |