ПРОЕКТЫ 


  АРХИВ 


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: ngx_http_conf_get_module_main_conf questions



Hello!

On Sun, Jun 02, 2013 at 03:41:22PM -0400, vagner wrote:

> Заранее извиняюсь за возможно глупый вопрос. Первый раз пишу модуль под
> nginx. Конечная цель - получение статистики из модуля
> ngx_http_static_module. Для этих целей создан модуль подобный ustats,
> опиcание модуля: 
> ngx_http_module_t  ngx_http_filestats_module_ctx =
> {
>     NULL,                                  /* preconfiguration */
>     NULL,                                                      /*
> postconfiguration */
> 
>     NULL,                                                              /*
> create main configuration */
>     NULL,                                  /* init main configuration */
> 
>     NULL,                                  /* create server configuration
> */
>     NULL,                                  /* merge server configuration */
> 
>     ngx_http_filestats_create_loc_conf,       /* create location
> configuration */
>     ngx_http_filestats_merge_loc_conf         /* merge location
> configuration */
> };
> 
> ngx_module_t  ngx_http_filestats_module =
> {
>     NGX_MODULE_V1,
>     &ngx_http_filestats_module_ctx,           /* module context */
>     ngx_http_filestats_commands,              /* module directives */
>     NGX_HTTP_MODULE,                       /* module type */
>     NULL,                                  /* init master */
>     NULL,                                  /* init module */
>     NULL,                                  /* init process */
>     NULL,                                  /* init thread */
>     NULL,                                  /* exit thread */
>     NULL,                                  /* exit process */
>     NULL,                                  /* exit master */
>     NGX_MODULE_V1_PADDING
> };
> 
> При старте нормально проходит инициализация переменных, и присваиваются
> соответствуюшие значения из конфига. В ngx_http_static_module вписываю
> соответствующую строку для получения данных (структуры
> ngx_http_filestats_loc_conf_t) от ngx_http_filestats_module:
> uslc = ngx_http_get_module_loc_conf(r, ngx_http_filestats_module);
> Далее при получении значений, я получаю только то, то присвоено в
> ngx_http_filestats_merge_loc_conf, но то, что должно присваиваться (и
> присваивалось при старте) в ngx_command_t я теряю. Подскажите пожалуйста,
> как я могу получить присвоенные значения в структуре
> ngx_http_filestats_loc_conf_t после парсинга конфига в другом модуле?

Если в ngx_http_filestats_merge_loc_conf что-то было присвоено, то 
извлечь что-то, что было присвоено до этого - уже невозможно.

Попробуйте показать код целиком, добавив в него отладочное 
логгирование, демонстрирующее ту проблему, которую вы пытаетесь 
решить.  Возможно, станет понятнее, что вы имели ввиду. 

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.