comparison src/http/ngx_http_upstream.c @ 354:583decdb82a4 NGINX_0_6_21

nginx 0.6.21 *) Change: if variable values used in a "proxy_pass" directive contain IP-addresses only, then a "resolver" directive is not mandatory. resolver *) Bugfix: a segmentation fault might occur in worker process if a "proxy_pass" directive with URI-part was used; bug appeared in 0.6.19. *) Bugfix: if resolver was used on platform that does not support kqueue, then nginx issued an alert "name is out of response". Thanks to Andrei Nigmatulin. *) Bugfix: if the $server_protocol was used in FastCGI parameters and a request line length was near to the "client_header_buffer_size" directive value, then nginx issued an alert "fastcgi: the request record is too big". *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS server, then nginx returned usual response.
author Igor Sysoev <http://sysoev.ru>
date Mon, 03 Dec 2007 00:00:00 +0300
parents e10168d6e371
children b743d290eb3b
comparison
equal deleted inserted replaced
353:4a470d9e2ea5 354:583decdb82a4
396 { 396 {
397 goto found; 397 goto found;
398 } 398 }
399 } 399 }
400 400
401 if (clcf->resolver == NULL) {
402 ngx_log_error(NGX_LOG_ERR, c->log, 0,
403 "no resolver defined to resolve %V", host);
404 ngx_http_finalize_request(r, NGX_HTTP_BAD_GATEWAY);
405 return;
406 }
407
408 temp.name = *host; 401 temp.name = *host;
409 402
410 ctx = ngx_resolve_start(clcf->resolver, &temp); 403 ctx = ngx_resolve_start(clcf->resolver, &temp);
411 if (ctx == NULL) { 404 if (ctx == NULL) {
412 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); 405 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
406 return;
407 }
408
409 if (ctx == NGX_NO_RESOLVER) {
410 ngx_log_error(NGX_LOG_ERR, c->log, 0,
411 "no resolver defined to resolve %V", host);
412
413 ngx_http_finalize_request(r, NGX_HTTP_BAD_GATEWAY);
413 return; 414 return;
414 } 415 }
415 416
416 ctx->name = *host; 417 ctx->name = *host;
417 ctx->type = NGX_RESOLVE_A; 418 ctx->type = NGX_RESOLVE_A;