Mercurial > hg > nginx-quic
comparison src/core/ngx_resolver.c @ 6352:ff9b32c0e141
Resolver: limited CNAME recursion.
Previously, the recursion was only limited for cached responses.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 26 Jan 2016 16:47:14 +0300 |
parents | 497d0cff8ace |
children | d35b4d590b2d |
comparison
equal
deleted
inserted
replaced
6351:497d0cff8ace | 6352:ff9b32c0e141 |
---|---|
1999 rn->valid = ngx_time() + (r->valid ? r->valid : (time_t) rn->ttl); | 1999 rn->valid = ngx_time() + (r->valid ? r->valid : (time_t) rn->ttl); |
2000 rn->expire = ngx_time() + r->expire; | 2000 rn->expire = ngx_time() + r->expire; |
2001 | 2001 |
2002 ngx_queue_insert_head(&r->name_expire_queue, &rn->queue); | 2002 ngx_queue_insert_head(&r->name_expire_queue, &rn->queue); |
2003 | 2003 |
2004 ngx_resolver_free(r, rn->query); | |
2005 rn->query = NULL; | |
2006 #if (NGX_HAVE_INET6) | |
2007 rn->query6 = NULL; | |
2008 #endif | |
2009 | |
2004 ctx = rn->waiting; | 2010 ctx = rn->waiting; |
2005 rn->waiting = NULL; | 2011 rn->waiting = NULL; |
2006 | 2012 |
2007 if (ctx) { | 2013 if (ctx) { |
2008 | 2014 |
2015 if (ctx->recursion++ >= NGX_RESOLVER_MAX_RECURSION) { | |
2016 | |
2017 /* unlock name mutex */ | |
2018 | |
2019 do { | |
2020 ctx->state = NGX_RESOLVE_NXDOMAIN; | |
2021 next = ctx->next; | |
2022 | |
2023 ctx->handler(ctx); | |
2024 | |
2025 ctx = next; | |
2026 } while (ctx); | |
2027 | |
2028 return; | |
2029 } | |
2030 | |
2009 for (next = ctx; next; next = next->next) { | 2031 for (next = ctx; next; next = next->next) { |
2010 next->node = NULL; | 2032 next->node = NULL; |
2011 } | 2033 } |
2012 | 2034 |
2013 (void) ngx_resolve_name_locked(r, ctx, &name); | 2035 (void) ngx_resolve_name_locked(r, ctx, &name); |
2014 } | 2036 } |
2015 | |
2016 ngx_resolver_free(r, rn->query); | |
2017 rn->query = NULL; | |
2018 #if (NGX_HAVE_INET6) | |
2019 rn->query6 = NULL; | |
2020 #endif | |
2021 | 2037 |
2022 /* unlock name mutex */ | 2038 /* unlock name mutex */ |
2023 | 2039 |
2024 return; | 2040 return; |
2025 } | 2041 } |