utf8 in ngx_http_request_s

Igor Sysoev is at rambler-co.ru
Tue Oct 27 10:55:41 MSK 2009


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





More information about the nginx-ru mailing list