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;