mdounin at mdounin.ru
Fri May 23 13:41:08 UTC 2014
On Fri, May 23, 2014 at 02:17:27PM +0100, Paulo Silva wrote:
> On Fri, May 23, 2014 at 12:58 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Hello!
> > On Fri, May 23, 2014 at 11:57:20AM +0100, Paulo Silva wrote:
> >> there is other option than modify the auto/modules file?
> >> According to my goal (capture the full request response body) I would
> >> say that my module must run right before the postpone.
> > Before the postpone filter you'll get subrequest bodies in your
> > filter, which is probably not what you want (the postpone filter
> > is to glue subrequest together, correctly ordered).
> >> Am I supposed to modify the auto/modules like follows?
> >> if [ $HTTP_POSTPONE = YES ]; then
> >> HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
> >> HTTP_SRCS="$HTTP_SRCS $HTTP_POSTPONE_FILTER_SRCS"
> >> fi
> >> # insert my module here!
> >> if [ $HTTP_SSI = YES ]; then
> >> have=NGX_HTTP_SSI . auto/have
> >> HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
> >> HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS"
> >> HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
> >> fi
> >> I did check my modules config file and I did realize that it is
> >> "queued" as HTTP_AUX_FILTER_MODULES. There are different queues for
> >> core modules and addons?
> > The HTTP_AUX_FILTER_MODULES is a generic queue, and it's the
> > only one currently officially supported for 3rd party modules.
> > If you want your filter to be called right before/after postpone
> > filter, it should be relatively safe to put it into the
> > HTTP_POSTPONE_FILTER_MODULE variable though (and may be with some
> > additional checks to make sure the postpone filter is enabled, or
> > just a code to enable it unconditionally).
> And this is also valid when compiling nginx with the --add-module flag?
> How does config file look like?
> My knowledge is restricted to Emiller's Guide To Nginx Module
> Development (http://www.evanmiller.org/nginx-modules-guide.html) and a
> few debugging hours.
Uhm, looking again into auto/modules I think I was wrong, and
modifying the HTTP_POSTPONE_FILTER_MODULE variable won't work
(added module config scripts are executed later on), you should
modify HTTP_FILTER_MODULES variable instead, and put your module
into a proper position.
Note that the "config" file of a module is just a shell script,
and you are free to do more or less anything there.
More information about the nginx-devel