Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_resolver.c @ 622:8dc007eddbcf NGINX_1_0_1
nginx 1.0.1
*) Change: now the "split_clients" directive uses MurmurHash2 algorithm
because of better distribution.
Thanks to Oleg Mamontov.
*) Change: now long strings starting with zero are not considered as
false values.
Thanks to Maxim Dounin.
*) Change: now nginx uses a default listen backlog value 511 on Linux.
*) Feature: the $upstream_... variables may be used in the SSI and perl
modules.
*) Bugfix: now nginx limits better disk cache size.
Thanks to Oleg Mamontov.
*) Bugfix: a segmentation fault might occur while parsing incorrect
IPv4 address; the bug had appeared in 0.9.3.
Thanks to Maxim Dounin.
*) Bugfix: nginx could not be built by gcc 4.6 without --with-debug
option.
*) Bugfix: nginx could not be built on Solaris 9 and earlier; the bug
had appeared in 0.9.3.
Thanks to Dagobert Michelsen.
*) Bugfix: $request_time variable had invalid values if subrequests
were used; the bug had appeared in 0.8.47.
Thanks to Igor A. Valcov.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 03 May 2011 00:00:00 +0400 |
parents | be70f83b184f |
children | 615b5ea36fc0 |
comparison
equal
deleted
inserted
replaced
621:00d13b6d4ebd | 622:8dc007eddbcf |
---|---|
1420 char *err; | 1420 char *err; |
1421 size_t len; | 1421 size_t len; |
1422 in_addr_t addr; | 1422 in_addr_t addr; |
1423 ngx_int_t digit; | 1423 ngx_int_t digit; |
1424 ngx_str_t name; | 1424 ngx_str_t name; |
1425 ngx_uint_t i, mask, qtype, qclass, qident; | 1425 ngx_uint_t i, mask, qident; |
1426 ngx_resolver_an_t *an; | 1426 ngx_resolver_an_t *an; |
1427 ngx_resolver_ctx_t *ctx, *next; | 1427 ngx_resolver_ctx_t *ctx, *next; |
1428 ngx_resolver_node_t *rn; | 1428 ngx_resolver_node_t *rn; |
1429 | 1429 |
1430 if (ngx_resolver_copy(r, NULL, buf, &buf[12], &buf[n]) != NGX_OK) { | 1430 if (ngx_resolver_copy(r, NULL, buf, &buf[12], &buf[n]) != NGX_OK) { |
1512 goto invalid; | 1512 goto invalid; |
1513 } | 1513 } |
1514 | 1514 |
1515 an = (ngx_resolver_an_t *) &buf[i + 2]; | 1515 an = (ngx_resolver_an_t *) &buf[i + 2]; |
1516 | 1516 |
1517 qtype = (an->type_hi << 8) + an->type_lo; | |
1518 qclass = (an->class_hi << 8) + an->class_lo; | |
1519 len = (an->len_hi << 8) + an->len_lo; | 1517 len = (an->len_hi << 8) + an->len_lo; |
1520 | 1518 |
1521 ngx_log_debug3(NGX_LOG_DEBUG_CORE, r->log, 0, | 1519 ngx_log_debug3(NGX_LOG_DEBUG_CORE, r->log, 0, |
1522 "resolver qt:%ui cl:%ui len:%uz", qtype, qclass, len); | 1520 "resolver qt:%ui cl:%ui len:%uz", |
1521 (an->type_hi << 8) + an->type_lo, | |
1522 (an->class_hi << 8) + an->class_lo, len); | |
1523 | 1523 |
1524 i += 2 + sizeof(ngx_resolver_an_t); | 1524 i += 2 + sizeof(ngx_resolver_an_t); |
1525 | 1525 |
1526 if (i + len > (ngx_uint_t) n) { | 1526 if (i + len > (ngx_uint_t) n) { |
1527 goto short_response; | 1527 goto short_response; |