Mercurial > hg > nginx
comparison src/core/ngx_resolver.c @ 2482:30ec8c5ac75b
fix reverse resolving cache: it stored zero length names
*) free name only if it has been already allocated
*) store name length
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 29 Jan 2009 14:29:49 +0000 |
parents | 52987a023486 |
children | 29494780d978 |
comparison
equal
deleted
inserted
replaced
2481:d4fd929fb486 | 2482:30ec8c5ac75b |
---|---|
1521 | 1521 |
1522 ngx_log_debug1(NGX_LOG_DEBUG_CORE, r->log, 0, "resolver an:%V", &name); | 1522 ngx_log_debug1(NGX_LOG_DEBUG_CORE, r->log, 0, "resolver an:%V", &name); |
1523 | 1523 |
1524 if (len != (size_t) rn->nlen || ngx_strncmp(name.data, rn->name, len) != 0) | 1524 if (len != (size_t) rn->nlen || ngx_strncmp(name.data, rn->name, len) != 0) |
1525 { | 1525 { |
1526 ngx_resolver_free(r, rn->name); | 1526 if (rn->nlen) { |
1527 ngx_resolver_free(r, rn->name); | |
1528 } | |
1529 | |
1530 rn->nlen = len; | |
1527 rn->name = name.data; | 1531 rn->name = name.data; |
1528 | 1532 |
1529 name.data = ngx_resolver_dup(r, rn->name, len); | 1533 name.data = ngx_resolver_dup(r, rn->name, len); |
1530 if (name.data == NULL) { | 1534 if (name.data == NULL) { |
1531 goto failed; | 1535 goto failed; |