Mercurial > hg > nginx
changeset 3495:6a5dc3803825
do not store an encoded variable value as a new cached variable value
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 21 Apr 2010 14:58:21 +0000 |
parents | 67b8a4e0d7e1 |
children | fb88801564de |
files | src/http/modules/ngx_http_ssi_filter_module.c |
diffstat | 1 files changed, 10 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_ssi_filter_module.c Tue Apr 06 11:49:36 2010 +0000 +++ b/src/http/modules/ngx_http_ssi_filter_module.c Wed Apr 21 14:58:21 2010 +0000 @@ -2161,11 +2161,10 @@ } } + p = value->data; + switch (ctx->encoding) { - case NGX_HTTP_SSI_NO_ENCODING: - break; - case NGX_HTTP_SSI_URL_ENCODING: len = 2 * ngx_escape_uri(NULL, value->data, value->len, NGX_ESCAPE_HTML); @@ -2177,11 +2176,9 @@ } (void) ngx_escape_uri(p, value->data, value->len, NGX_ESCAPE_HTML); - - value->len += len; - value->data = p; } + len += value->len; break; case NGX_HTTP_SSI_ENTITY_ENCODING: @@ -2194,11 +2191,13 @@ } (void) ngx_escape_html(p, value->data, value->len); - - value->len += len; - value->data = p; } + len += value->len; + break; + + default: /* NGX_HTTP_SSI_NO_ENCODING */ + len = value->len; break; } @@ -2213,8 +2212,8 @@ } b->memory = 1; - b->pos = value->data; - b->last = value->data + value->len; + b->pos = p; + b->last = p + len; cl->buf = b; cl->next = NULL;