Нить выхода модуля NGINX / главные обратные вызовы - PullRequest
1 голос
/ 03 февраля 2012

У меня возникли некоторые проблемы (и головные боли) с моим маленьким модулем nginx. В последнее время я видел много кода модулей и кучу материала о модулях nginx, но мне не удается сделать то, что мне нужно. Вот моя проблема: Я создал свой собственный модуль nginx под названием «mymodule». Его структура loc_conf выглядит так:

typedef struct {
    void *serverConf;
    ngx_str_t server_file;
} ngx_http_mymodule_loc_conf_t;

его структура команд выглядит так:

static ngx_command_t ngx_http_mymodule_commands[] = {
  {
   ngx_string("mymodule"),
   NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
   ngx_http_mymodule,
   NGX_HTTP_LOC_CONF_OFFSET,
   0,
   NULL
  },
ngx_null_command 
};

в функции ngx_http_mymodule я делаю некоторые вещи и устанавливаю указатель serverConf в ngx_http_mymodule_loc_conf_t. Проблема заключается в том, что я хотел бы получить указатель serverConf при выходе из потока / процесса. Но единственный параметр, переданный ngx_module_t при выходе из процесса или мастера потока, - это ngx_cycle_t *, и я не могу найти, как извлечь из него ngx_http_mymodule_loc_conf_t для работы с указателем serverConf.

[EDIT] Я пробовал это в обратном вызове выхода потока, но не повезло иметь ненулевой указатель serverConf:

ngx_http_mymodule_loc_conf_t *mymodulecf = (ngx_http_mymodule_loc_conf_t *)ngx_get_conf(cycle->conf_ctx, ngx_http_mymodule_module);

Любая помощь или идея будут оценены :) Заранее спасибо.

...