Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 1969:41fd9a2e0755
limit CNAME recursion
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 12 Apr 2008 07:29:20 +0000 |
parents | 4a4b15c9c474 |
children | b52cb9bf2064 |
comparison
equal
deleted
inserted
replaced
1968:3c540ad3021f | 1969:41fd9a2e0755 |
---|---|
433 return NGX_OK; | 433 return NGX_OK; |
434 } | 434 } |
435 | 435 |
436 /* NGX_RESOLVE_CNAME */ | 436 /* NGX_RESOLVE_CNAME */ |
437 | 437 |
438 ctx->name.len = rn->cnlen; | 438 if (ctx->recursion++ < NGX_RESOLVER_MAX_RECURSION) { |
439 ctx->name.data = rn->u.cname; | 439 |
440 | 440 ctx->name.len = rn->cnlen; |
441 return ngx_resolve_name_locked(r, ctx); | 441 ctx->name.data = rn->u.cname; |
442 | |
443 return ngx_resolve_name_locked(r, ctx); | |
444 } | |
445 | |
446 ctx->next = rn->waiting; | |
447 rn->waiting = NULL; | |
448 | |
449 /* unlock name mutex */ | |
450 | |
451 do { | |
452 ctx->state = NGX_RESOLVE_NXDOMAIN; | |
453 next = ctx->next; | |
454 | |
455 ctx->handler(ctx); | |
456 | |
457 ctx = next; | |
458 } while (ctx); | |
459 | |
460 return NGX_OK; | |
442 } | 461 } |
443 | 462 |
444 if (rn->waiting) { | 463 if (rn->waiting) { |
445 | 464 |
446 ctx->next = rn->waiting; | 465 ctx->next = rn->waiting; |