Mercurial > hg > nginx-vendor-current
comparison src/http/modules/ngx_http_charset_filter_module.c @ 390:0b6053502c55 NGINX_0_7_7
nginx 0.7.7
*) Change: now the EAGAIN error returned by connect() is not considered
as temporary error.
*) Change: now the $ssl_client_cert variable value is a certificate
with TAB character intended before each line except first one; an
unchanged certificate is available in the $ssl_client_raw_cert
variable.
*) Feature: the "ask" parameter in the "ssl_verify_client" directive.
*) Feature: byte-range processing improvements.
Thanks to Maxim Dounin.
*) Feature: the "directio" directive.
*) Feature: MacOSX 1.5 sendfile() support.
*) Bugfix: now in MacOSX and Cygwin locations are tested in case
insensitive mode; however, the compare is provided by single-byte
locales only.
*) Bugfix: mail proxy SSL connections hanged, if select, poll, or
/dev/poll methods were used.
*) Bugfix: UTF-8 encoding usage in the ngx_http_autoindex_module.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 30 Jul 2008 00:00:00 +0400 |
parents | 984bb0b1399b |
children | 05981f639d21 |
comparison
equal
deleted
inserted
replaced
389:930e48a26dde | 390:0b6053502c55 |
---|---|
640 out->next = NULL; | 640 out->next = NULL; |
641 | 641 |
642 size = buf->last - src; | 642 size = buf->last - src; |
643 | 643 |
644 saved = src; | 644 saved = src; |
645 n = ngx_utf_decode(&saved, size); | 645 n = ngx_utf8_decode(&saved, size); |
646 | 646 |
647 if (n == 0xfffffffe) { | 647 if (n == 0xfffffffe) { |
648 /* incomplete UTF-8 symbol */ | 648 /* incomplete UTF-8 symbol */ |
649 | 649 |
650 ngx_memcpy(ctx->saved, src, size); | 650 ngx_memcpy(ctx->saved, src, size); |
708 break; | 708 break; |
709 } | 709 } |
710 } | 710 } |
711 | 711 |
712 saved = ctx->saved; | 712 saved = ctx->saved; |
713 n = ngx_utf_decode(&saved, i); | 713 n = ngx_utf8_decode(&saved, i); |
714 | 714 |
715 c = '\0'; | 715 c = '\0'; |
716 | 716 |
717 if (n < 0x10000) { | 717 if (n < 0x10000) { |
718 table = (u_char **) ctx->table; | 718 table = (u_char **) ctx->table; |
816 continue; | 816 continue; |
817 } | 817 } |
818 | 818 |
819 len = buf->last - src; | 819 len = buf->last - src; |
820 | 820 |
821 n = ngx_utf_decode(&src, len); | 821 n = ngx_utf8_decode(&src, len); |
822 | 822 |
823 if (n < 0x10000) { | 823 if (n < 0x10000) { |
824 | 824 |
825 p = table[n >> 8]; | 825 p = table[n >> 8]; |
826 | 826 |
1268 ctx->charset->length += i; | 1268 ctx->charset->length += i; |
1269 ctx->characters++; | 1269 ctx->characters++; |
1270 | 1270 |
1271 p = &table->src2dst[src * NGX_UTF_LEN] + 1; | 1271 p = &table->src2dst[src * NGX_UTF_LEN] + 1; |
1272 | 1272 |
1273 n = ngx_utf_decode(&p, i); | 1273 n = ngx_utf8_decode(&p, i); |
1274 | 1274 |
1275 if (n > 0xffff) { | 1275 if (n > 0xffff) { |
1276 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 1276 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
1277 "invalid value \"%V\"", &value[1]); | 1277 "invalid value \"%V\"", &value[1]); |
1278 return NGX_CONF_ERROR; | 1278 return NGX_CONF_ERROR; |