EXSLT func:function not registered for XSLT filter module

Maxim Dounin mdounin at mdounin.ru
Fri Jul 19 12:03:09 UTC 2013


Hello!

On Wed, Jul 17, 2013 at 06:18:03PM +0200, Kate F wrote:

> On 15 July 2013 19:32, Maxim Dounin <mdounin at mdounin.ru> wrote:
> > Hello!
> >
> > On Sat, Jul 13, 2013 at 12:19:51PM +0200, Kate F wrote:
> >
> >> Hi,
> >>
> >> I'm trying to use EXSLT's <func:function> with nginx's xslt filter
> >> module. The effect I think I'm seeing is that my functions are
> >> seemingly ignored.
> >
> > [...]
> >
> >> Looking at ngx_http_xslt_filter_module.c I see exsltRegisterAll() is
> >> called, which is what should register libexslt's handler for
> >> func:function and friends:
> >>
> >>     #if (NGX_HAVE_EXSLT)
> >>         exsltRegisterAll();
> >>     #endif
> >>
> >> I know NGX_HAVE_EXSLT is defined because other EXSLT functions (such
> >> as things in the date: and str: namespaces) work fine.
> >
> > It looks like exsltRegisterAll() is called too late for EXSLT
> > Functions extension.
> >
> > Please try the following patch:
> >
> > # HG changeset patch
> > # User Maxim Dounin <mdounin at mdounin.ru>
> > # Date 1373909466 -14400
> > # Node ID bc1cf51a5b0a5e8512a8170dc7991f9e966c5533
> > # Parent  8e7db77e5d88b20d113e77b574e676737d67bf0e
> > Xslt: exsltRegisterAll() moved to preconfiguration.
> >
> > The exsltRegisterAll() needs to be called before XSLT stylesheets
> > are compiled, else stylesheet compilation hooks will not work.  This
> > change fixes EXSLT Functions extension.
> 
> Awesome! Good catch.
> 
> Thanks for that. Your patch works fine.

Committed, thanks for testing.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list