comparison src/core/ngx_resolver.c @ 542:2b9e388c61f1 NGINX_0_8_23

nginx 0.8.23 *) Security: now SSL/TLS renegotiation is disabled. Thanks to Maxim Dounin. *) Bugfix: listen unix domain socket did not inherit while online upgrade. *) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive did not without yet another directive with any IP address. *) Bugfix: segmentation fault and infinite looping in resolver. *) Bugfix: in resolver. Thanks to Artem Bokhan.
author Igor Sysoev <http://sysoev.ru>
date Wed, 11 Nov 2009 00:00:00 +0300
parents c04fa65fe604
children 40c366b3535c
comparison
equal deleted inserted replaced
541:8da5668048b4 542:2b9e388c61f1
462 462
463 if (rn->waiting) { 463 if (rn->waiting) {
464 464
465 ctx->next = rn->waiting; 465 ctx->next = rn->waiting;
466 rn->waiting = ctx; 466 rn->waiting = ctx;
467 ctx->state = NGX_AGAIN;
467 468
468 return NGX_AGAIN; 469 return NGX_AGAIN;
469 } 470 }
470 471
471 ngx_queue_remove(&rn->queue); 472 ngx_queue_remove(&rn->queue);
623 624
624 if (rn->waiting) { 625 if (rn->waiting) {
625 626
626 ctx->next = rn->waiting; 627 ctx->next = rn->waiting;
627 rn->waiting = ctx; 628 rn->waiting = ctx;
629 ctx->state = NGX_AGAIN;
628 630
629 /* unlock addr mutex */ 631 /* unlock addr mutex */
630 632
631 return NGX_OK; 633 return NGX_OK;
632 } 634 }
1750 query->nqs_hi = 0; query->nqs_lo = 1; 1752 query->nqs_hi = 0; query->nqs_lo = 1;
1751 query->nan_hi = 0; query->nan_lo = 0; 1753 query->nan_hi = 0; query->nan_lo = 0;
1752 query->nns_hi = 0; query->nns_lo = 0; 1754 query->nns_hi = 0; query->nns_lo = 0;
1753 query->nar_hi = 0; query->nar_lo = 0; 1755 query->nar_hi = 0; query->nar_lo = 0;
1754 1756
1755 p += sizeof(ngx_resolver_query_t) + 1 + ctx->name.len + 1; 1757 p += sizeof(ngx_resolver_query_t)
1758 + ctx->name.len ? (1 + ctx->name.len + 1) : 1;
1756 1759
1757 qs = (ngx_resolver_qs_t *) p; 1760 qs = (ngx_resolver_qs_t *) p;
1758 1761
1759 /* query type */ 1762 /* query type */
1760 qs->type_hi = 0; qs->type_lo = (u_char) ctx->type; 1763 qs->type_hi = 0; qs->type_lo = (u_char) ctx->type;
1895 return NGX_ERROR; 1898 return NGX_ERROR;
1896 1899
1897 done: 1900 done:
1898 1901
1899 if (name == NULL) { 1902 if (name == NULL) {
1903 return NGX_OK;
1904 }
1905
1906 if (len == -1) {
1907 name->len = 0;
1908 name->data = NULL;
1900 return NGX_OK; 1909 return NGX_OK;
1901 } 1910 }
1902 1911
1903 dst = ngx_resolver_alloc(r, len); 1912 dst = ngx_resolver_alloc(r, len);
1904 if (dst == NULL) { 1913 if (dst == NULL) {