Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 3306:61bdaac6c668
fix resolving an empty name (".")
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Nov 2009 14:27:24 +0000 |
parents | 0b6277a58a2d |
children | 34e99a97fbd6 |
comparison
equal
deleted
inserted
replaced
3305:8017f9bda3f6 | 3306:61bdaac6c668 |
---|---|
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 len = sizeof(ngx_resolver_query_t) + nlen + sizeof(ngx_resolver_qs_t); | |
1729 | 1730 |
1730 p = ngx_resolver_calloc(ctx->resolver, len); | 1731 p = ngx_resolver_calloc(ctx->resolver, len); |
1731 if (p == NULL) { | 1732 if (p == NULL) { |
1732 return NGX_ERROR; | 1733 return NGX_ERROR; |
1733 } | 1734 } |
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; |