aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2013-07-19 15:59:50 +0400
committerMaxim Dounin <mdounin@mdounin.ru>2013-07-19 15:59:50 +0400
commit809d05769bfa02bb138b4476174cf7ba7b5287cc (patch)
tree43523b76eb3fc3ba3dfbd4f767226974a2f1cafe /src
parent615d55884376040fc2b42d9f47f981cd700b384a (diff)
downloadnginx-809d05769bfa02bb138b4476174cf7ba7b5287cc.tar.gz
nginx-809d05769bfa02bb138b4476174cf7ba7b5287cc.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/http/modules/ngx_http_xslt_filter_module.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/http/modules/ngx_http_xslt_filter_module.c b/src/http/modules/ngx_http_xslt_filter_module.c
index 3198b7aba..9e85693bc 100644
--- a/src/http/modules/ngx_http_xslt_filter_module.c
+++ b/src/http/modules/ngx_http_xslt_filter_module.c
@@ -104,6 +104,7 @@ static void *ngx_http_xslt_filter_create_main_conf(ngx_conf_t *cf);
static void *ngx_http_xslt_filter_create_conf(ngx_conf_t *cf);
static char *ngx_http_xslt_filter_merge_conf(ngx_conf_t *cf, void *parent,
void *child);
+static ngx_int_t ngx_http_xslt_filter_preconfiguration(ngx_conf_t *cf);
static ngx_int_t ngx_http_xslt_filter_init(ngx_conf_t *cf);
static void ngx_http_xslt_filter_exit(ngx_cycle_t *cycle);
@@ -163,7 +164,7 @@ static ngx_command_t ngx_http_xslt_filter_commands[] = {
static ngx_http_module_t ngx_http_xslt_filter_module_ctx = {
- NULL, /* preconfiguration */
+ ngx_http_xslt_filter_preconfiguration, /* preconfiguration */
ngx_http_xslt_filter_init, /* postconfiguration */
ngx_http_xslt_filter_create_main_conf, /* create main configuration */
@@ -1111,7 +1112,7 @@ ngx_http_xslt_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child)
static ngx_int_t
-ngx_http_xslt_filter_init(ngx_conf_t *cf)
+ngx_http_xslt_filter_preconfiguration(ngx_conf_t *cf)
{
xmlInitParser();
@@ -1119,6 +1120,13 @@ ngx_http_xslt_filter_init(ngx_conf_t *cf)
exsltRegisterAll();
#endif
+ return NGX_OK;
+}
+
+
+static ngx_int_t
+ngx_http_xslt_filter_init(ngx_conf_t *cf)
+{
ngx_http_next_header_filter = ngx_http_top_header_filter;
ngx_http_top_header_filter = ngx_http_xslt_header_filter;