EXSLT func:function not registered for XSLT filter module
mdounin at mdounin.ru
Fri Jul 19 12:03:09 UTC 2013
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.
More information about the nginx