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;