Re[2]: инициализация фильтр модуля

linux-kernel linux-kernel at mail.ru
Wed Nov 7 00:40:57 MSK 2007


Здравствуйте, Maxim.

Вы писали 7 ноября 2007 г., 0:25:31:

> 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


спасибо, я извратнулся с глобальными указателями и заработало

-- 
С уважением,
 linux-kernel                          mailto:linux-kernel at mail.ru







More information about the nginx-ru mailing list