Mercurial > hg > nginx-ranges
comparison src/http/ngx_http_variables.c @ 441:fd759445d8a8 NGINX_0_7_28
nginx 0.7.28
*) Change: in memory allocation in the ngx_http_gzip_filter_module.
*) Change: the default "gzip_buffers" directive values have been
changed to 32 4k or 16 8k from 4 4k/8k.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 22 Dec 2008 00:00:00 +0300 |
parents | 9da1d9d94d18 |
children | 670af56a1158 |
comparison
equal
deleted
inserted
replaced
440:e2c4e8b635a8 | 441:fd759445d8a8 |
---|---|
770 ngx_http_variable_argument(ngx_http_request_t *r, ngx_http_variable_value_t *v, | 770 ngx_http_variable_argument(ngx_http_request_t *r, ngx_http_variable_value_t *v, |
771 uintptr_t data) | 771 uintptr_t data) |
772 { | 772 { |
773 ngx_str_t *name = (ngx_str_t *) data; | 773 ngx_str_t *name = (ngx_str_t *) data; |
774 | 774 |
775 u_char *p, *arg; | 775 u_char *arg; |
776 size_t len; | 776 size_t len; |
777 | 777 ngx_str_t value; |
778 if (r->args.len == 0) { | 778 |
779 len = name->len - (sizeof("arg_") - 1); | |
780 arg = name->data + sizeof("arg_") - 1; | |
781 | |
782 if (ngx_http_arg(r, arg, len, &value) != NGX_OK) { | |
779 v->not_found = 1; | 783 v->not_found = 1; |
780 return NGX_OK; | 784 return NGX_OK; |
781 } | 785 } |
782 | 786 |
783 len = name->len - 1 - (sizeof("arg_") - 1); | 787 v->data = value.data; |
784 arg = name->data + sizeof("arg_") - 1; | 788 v->len = value.len; |
785 | 789 v->valid = 1; |
786 for (p = r->args.data; *p && *p != ' '; p++) { | 790 v->no_cacheable = 0; |
787 | 791 v->not_found = 0; |
788 /* | |
789 * although r->args.data is not null-terminated by itself, | |
790 * however, there is null in the end of request line | |
791 */ | |
792 | |
793 p = ngx_strcasestrn(p, (char *) arg, len); | |
794 | |
795 if (p == NULL) { | |
796 v->not_found = 1; | |
797 return NGX_OK; | |
798 } | |
799 | |
800 if ((p == r->args.data || *(p - 1) == '&') && *(p + len + 1) == '=') { | |
801 | |
802 v->data = p + len + 2; | |
803 | |
804 p = (u_char *) ngx_strchr(p, '&'); | |
805 | |
806 if (p == NULL) { | |
807 p = r->args.data + r->args.len; | |
808 } | |
809 | |
810 v->len = p - v->data; | |
811 v->valid = 1; | |
812 v->no_cacheable = 0; | |
813 v->not_found = 0; | |
814 | |
815 return NGX_OK; | |
816 } | |
817 } | |
818 | |
819 v->not_found = 1; | |
820 | 792 |
821 return NGX_OK; | 793 return NGX_OK; |
822 } | 794 } |
823 | 795 |
824 | 796 |