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
|