ngx_http_conf_get_module_main_conf questions
Maxim Dounin
mdounin at mdounin.ru
Sun Jun 2 22:26:49 UTC 2013
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