Rewrite handling order
Maxim Dounin
mdounin at mdounin.ru
Tue Jan 14 11:11:21 UTC 2014
Hello!
On Tue, Jan 14, 2014 at 04:15:32PM +0530, Fasih wrote:
> Hi
>
> I have a custom plugin that handles rewrite (NGX_HTTP_REWRITE_PHASE). There
> is another plugin compiled before my plugin that also handles rewrite
> (HttpLuaModule). I was expecting to see that my module would rewrite after
> lua is done, however that is not the case. Some debugging showed that
> whereas my module pushed into the
> cmcf->phases[NGX_HTTP_REWRITE_PHASE].handlers after lua, the
> cmcf.phase_engine.handlers had lua *after* my module. The culprit seems to
> be the following:
>
> static ngx_int_t
> ngx_http_init_phase_handlers(ngx_conf_t *cf, ngx_http_core_main_conf_t
> *cmcf)
> {
> ..
> ph = cmcf->phase_engine.handlers;
> ..
> n += cmcf->phases[i].handlers.nelts;
>
> for (j = cmcf->phases[i].handlers.nelts - 1; j >=0; j--) {
> ph->checker = checker;
> ph->handler = h[j];
> ph->next = n;
> ph++;
> }
> }
>
> The order is inverted here (h[j] before h[j-1]). Is this intentional or a
> bug?
It's intentional.
--
Maxim Dounin
http://nginx.org/
More information about the nginx-devel
mailing list