ПРОЕКТЫ 


  АРХИВ 


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: инициализация фильт р модуля



Hello!

On Tue, 6 Nov 2007, linux-kernel wrote:

Здравствуйте, nginx-ru.
Писал я модуль к нгинксу 0 6 16 и сталкнулся с проблемой.

Взял в качестве образца ngx_http_chunked_filter_module.c и обнаружил
что в инит функции модуля, те в ngx_http_chunked_filter_init

ngx_http_next_header_filter = ngx_http_top_header_filter;
ngx_http_top_header_filter = ngx_http_chunked_header_filter;

ngx_http_next_body_filter = ngx_http_top_body_filter;
ngx_http_top_body_filter = ngx_http_chunked_body_filter;
не имею смысла тк,  модули
ngx_http_headers_filter_module.c и ngx_http_write_filter_module.c не
были инициализированы и соответствующий
ngx_http_top_header_filter и ngx_http_top_body_filter равны NULL, те в
свой фильтр модуль я получаю gx_http_next_header_filter = NULL, а
когда ngx_http_headers_filter_module.c и
ngx_http_write_filter_module.c проинициализируются, они спокойно
затирают указатель на мой фильтр, те мои функции фильтры вообще не
вызываются.

Собственно вопрос: так должно быть или я не правильно понял идеалогию
нгинх-а(я его только 5 день в глаза вижу)???

Видимо, вы встроились в неправильное место цепочки фильтров при конфигурировании. В файле config надо написать примерно следующее:

ngx_addon_name="ngx_http_my_filter_module"
HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES ngx_http_my_filter_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_my_filter_module.c"

Тогда фильтр встроется в осмысленное место.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.