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? Thanks!
_______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel