comparison src/http/ngx_http_core_module.c @ 328:390b8f8309d6 NGINX_0_6_8

nginx 0.6.8 *) Change: now nginx tries to set the "worker_priority", "worker_rlimit_nofile", "worker_rlimit_core", and "worker_rlimit_sigpending" without super-user privileges. *) Change: now nginx escapes space and "%" in request to a mail proxy authentication server. *) Change: now nginx escapes "%" in $memcached_key variable. *) Bugfix: nginx used path relative to configuration prefix for non-absolute configuration file path specified in the "-c" key; bug appeared in 0.6.6. *) Bugfix: nginx did not work on FreeBSD/sparc64.
author Igor Sysoev <http://sysoev.ru>
date Mon, 20 Aug 2007 00:00:00 +0400
parents 9fc4ab6673f9
children 3a91bfeffaba
comparison
equal deleted inserted replaced
327:be18d26e067c 328:390b8f8309d6
618 618
619 ngx_int_t 619 ngx_int_t
620 ngx_http_core_find_config_phase(ngx_http_request_t *r, 620 ngx_http_core_find_config_phase(ngx_http_request_t *r,
621 ngx_http_phase_handler_t *ph) 621 ngx_http_phase_handler_t *ph)
622 { 622 {
623 u_char *p;
624 size_t len;
623 ngx_int_t rc; 625 ngx_int_t rc;
624 ngx_http_core_loc_conf_t *clcf; 626 ngx_http_core_loc_conf_t *clcf;
625 ngx_http_core_srv_conf_t *cscf; 627 ngx_http_core_srv_conf_t *cscf;
626 628
627 r->content_handler = NULL; 629 r->content_handler = NULL;
678 /* 680 /*
679 * we do not need to set the r->headers_out.location->hash and 681 * we do not need to set the r->headers_out.location->hash and
680 * r->headers_out.location->key fields 682 * r->headers_out.location->key fields
681 */ 683 */
682 684
683 r->headers_out.location->value = clcf->name; 685 if (r->args.len == 0) {
686 r->headers_out.location->value = clcf->name;
687
688 } else {
689 len = clcf->name.len + 1 + r->args.len;
690 p = ngx_palloc(r->pool, len);
691
692 if (p == NULL) {
693 ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
694 return NGX_OK;
695 }
696
697 r->headers_out.location->value.len = len;
698 r->headers_out.location->value.data = p;
699
700 p = ngx_cpymem(p, clcf->name.data, clcf->name.len);
701 *p++ = '?';
702 ngx_memcpy(p, r->args.data, r->args.len);
703 }
684 704
685 ngx_http_finalize_request(r, NGX_HTTP_MOVED_PERMANENTLY); 705 ngx_http_finalize_request(r, NGX_HTTP_MOVED_PERMANENTLY);
686 return NGX_OK; 706 return NGX_OK;
687 } 707 }
688 708