ngx_http_get_module_loc_conf() and r->internal weirdness
ssehic at gmail.com
Thu Jan 7 16:01:08 MSK 2010
On Thu, Jan 7, 2010 at 1:23 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> On Thu, Jan 07, 2010 at 07:19:55AM +0100, Srebrenko Šehić wrote:
>> On Tue, Dec 29, 2009 at 11:03 PM, Srebrenko Šehić <ssehic at gmail.com> wrote:
>> > Hi list,
>> > While working on extending nginx' Perl support, I stumbled upon the
>> > following behavior.
>> > If an input handler issues a internal redirect via
>> > ngx_http_internal_redirect(), a call to
>> > ngx_http_get_module_loc_conf(r, ngx_http_X_module) inside an
>> > NGX_HTTP_LOG_PHASE handler returns NULL. If the request is not an
>> > internal redirect, the call returns the expected location config.
>> > Any idea why?
>> I've still found a solution for this. Anyone with a clue?
> You are doing something wrong. As you may see in log module - it
> uses ngx_http_get_module_loc_conf() happily and works ok with
> internal redirects. Internal redirects clear module contexts, but
> not configs.
Yes. I did have a look. However, the difference is that my module
issues an internal redirect in it's own input handler. When the
registered LOG_PHASE handler runs in the same module - the local
config is gone.
More information about the nginx-devel