comparison src/core/ngx_resolver.c @ 544:40c366b3535c NGINX_0_8_24

nginx 0.8.24 *) Bugfix: nginx always added "Content-Encoding: gzip" response header line in 304 responses sent by ngx_http_gzip_static_module. *) Bugfix: nginx could not be built without the --with-debug option; the bug had appeared in 0.8.23. *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive inherited incorrectly from previous level. *) Bugfix: in resolving empty name.
author Igor Sysoev <http://sysoev.ru>
date Wed, 11 Nov 2009 00:00:00 +0300
parents 2b9e388c61f1
children 25255878df91
comparison
equal deleted inserted replaced
543:48b3f4b6bc38 544:40c366b3535c
1717 1717
1718 static ngx_int_t 1718 static ngx_int_t
1719 ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx) 1719 ngx_resolver_create_name_query(ngx_resolver_node_t *rn, ngx_resolver_ctx_t *ctx)
1720 { 1720 {
1721 u_char *p, *s; 1721 u_char *p, *s;
1722 size_t len; 1722 size_t len, nlen;
1723 ngx_uint_t ident; 1723 ngx_uint_t ident;
1724 ngx_resolver_qs_t *qs; 1724 ngx_resolver_qs_t *qs;
1725 ngx_resolver_query_t *query; 1725 ngx_resolver_query_t *query;
1726 1726
1727 len = sizeof(ngx_resolver_query_t) 1727 nlen = ctx->name.len ? (1 + ctx->name.len + 1) : 1;
1728 + 1 + ctx->name.len + 1 + sizeof(ngx_resolver_qs_t); 1728
1729 1729 len = sizeof(ngx_resolver_query_t) + nlen + sizeof(ngx_resolver_qs_t);
1730 p = ngx_resolver_calloc(ctx->resolver, len); 1730
1731 p = ngx_resolver_alloc(ctx->resolver, len);
1731 if (p == NULL) { 1732 if (p == NULL) {
1732 return NGX_ERROR; 1733 return NGX_ERROR;
1733 } 1734 }
1734 1735
1735 rn->qlen = (u_short) len; 1736 rn->qlen = (u_short) len;
1752 query->nqs_hi = 0; query->nqs_lo = 1; 1753 query->nqs_hi = 0; query->nqs_lo = 1;
1753 query->nan_hi = 0; query->nan_lo = 0; 1754 query->nan_hi = 0; query->nan_lo = 0;
1754 query->nns_hi = 0; query->nns_lo = 0; 1755 query->nns_hi = 0; query->nns_lo = 0;
1755 query->nar_hi = 0; query->nar_lo = 0; 1756 query->nar_hi = 0; query->nar_lo = 0;
1756 1757
1757 p += sizeof(ngx_resolver_query_t) 1758 p += sizeof(ngx_resolver_query_t) + nlen;
1758 + ctx->name.len ? (1 + ctx->name.len + 1) : 1;
1759 1759
1760 qs = (ngx_resolver_qs_t *) p; 1760 qs = (ngx_resolver_qs_t *) p;
1761 1761
1762 /* query type */ 1762 /* query type */
1763 qs->type_hi = 0; qs->type_lo = (u_char) ctx->type; 1763 qs->type_hi = 0; qs->type_lo = (u_char) ctx->type;
1807 1807
1808 len = sizeof(ngx_resolver_query_t) 1808 len = sizeof(ngx_resolver_query_t)
1809 + sizeof(".255.255.255.255.in-addr.arpa.") - 1 1809 + sizeof(".255.255.255.255.in-addr.arpa.") - 1
1810 + sizeof(ngx_resolver_qs_t); 1810 + sizeof(ngx_resolver_qs_t);
1811 1811
1812 p = ngx_resolver_calloc(ctx->resolver, len); 1812 p = ngx_resolver_alloc(ctx->resolver, len);
1813 if (p == NULL) { 1813 if (p == NULL) {
1814 return NGX_ERROR; 1814 return NGX_ERROR;
1815 } 1815 }
1816 1816
1817 rn->query = p; 1817 rn->query = p;