ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: utf8 in ngx_http_request_s



On Tue, Oct 27, 2009 at 09:35:35AM +0200, dimkalinux wrote:

> В nginx 0.7.63 из структуры ngx_http_request_s убрано поле utf8,
> которое используется в fancyindex_module. Соответственно получаем
> ошибки при компиляции:
> 
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:
> In function 'make_content_buf':
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:428:
> error: 'ngx_http_request_t' has no member named 'utf8'
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:635:18:
> warning: "/*" within comment
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:305:
> warning: unused variable 'months'
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:297:
> warning: unused variable 'tp'
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:295:
> warning: unused variable 'tm'
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:
> In function 'ngx_http_fancyindex_merge_loc_conf':
> /usr/src/redhat/SOURCES/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c:942:
> warning: unused parameter 'cf'
> make[1]: *** 
> [objs/addon/nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.o]
> Error 1
> 
> Код, вызывающий ошибку:
> entry->utf_len = (r->utf8) ?  ngx_utf8_length(entry->name.data,
> entry->name.len) : len;
> 
> Что теперь правильней использовать ngx_utf8_length или len?

Вместо r->utf8 нужно использовать utf8, получаемый так:

    if (r->headers_out.charset.len == 5
        && ngx_strncasecmp(r->headers_out.charset.data, (u_char *) "utf-8", 5)
           == 0)
    {
        utf8 = 1;

    } else {
        utf8 = 0;
    }

См. ngx_http_autoindex_modile.c


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.