Mercurial > hg > nginx-mail
comparison src/http/modules/ngx_http_xslt_filter_module.c @ 548:4b0d7f0bf22b NGINX_0_8_6
nginx 0.8.6
*) Feature: the ngx_http_geoip_module.
*) Bugfix: XSLT filter may fail with message "not well formed XML
document" for valid XML document.
Thanks to Kuramoto Eiji.
*) Bugfix: now in MacOSX, Cygwin, and nginx/Windows locations given by
a regular expression are always tested in case insensitive mode;
*) Bugfix: now nginx/Windows ignores trailing dots in URI.
Thanks to Hugo Leisink.
*) Bugfix: name of file specified in --conf-path was not honored during
installation; the bug had appeared in 0.6.6.
Thanks to Maxim Dounin.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 20 Jul 2009 00:00:00 +0400 |
parents | f39b9e29530d |
children | 24b676623d4f |
comparison
equal
deleted
inserted
replaced
547:0001f4fa0501 | 548:4b0d7f0bf22b |
---|---|
192 NULL, /* init master */ | 192 NULL, /* init master */ |
193 NULL, /* init module */ | 193 NULL, /* init module */ |
194 NULL, /* init process */ | 194 NULL, /* init process */ |
195 NULL, /* init thread */ | 195 NULL, /* init thread */ |
196 NULL, /* exit thread */ | 196 NULL, /* exit thread */ |
197 ngx_http_xslt_filter_exit, /* exit process */ | 197 ngx_http_xslt_filter_exit, /* exit process */ |
198 ngx_http_xslt_filter_exit, /* exit master */ | 198 ngx_http_xslt_filter_exit, /* exit master */ |
199 NGX_MODULE_V1_PADDING | 199 NGX_MODULE_V1_PADDING |
200 }; | 200 }; |
201 | 201 |
202 | 202 |
245 | 245 |
246 | 246 |
247 static ngx_int_t | 247 static ngx_int_t |
248 ngx_http_xslt_body_filter(ngx_http_request_t *r, ngx_chain_t *in) | 248 ngx_http_xslt_body_filter(ngx_http_request_t *r, ngx_chain_t *in) |
249 { | 249 { |
250 int wellFormed; | |
250 ngx_chain_t *cl; | 251 ngx_chain_t *cl; |
251 ngx_http_xslt_filter_ctx_t *ctx; | 252 ngx_http_xslt_filter_ctx_t *ctx; |
252 | 253 |
253 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | 254 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
254 "xslt filter body"); | 255 "xslt filter body"); |
286 | 287 |
287 #if (NGX_HTTP_XSLT_REUSE_DTD) | 288 #if (NGX_HTTP_XSLT_REUSE_DTD) |
288 ctx->doc->extSubset = NULL; | 289 ctx->doc->extSubset = NULL; |
289 #endif | 290 #endif |
290 | 291 |
292 wellFormed = ctx->ctxt->wellFormed; | |
293 | |
291 xmlFreeParserCtxt(ctx->ctxt); | 294 xmlFreeParserCtxt(ctx->ctxt); |
292 | 295 |
293 if (ctx->ctxt->wellFormed) { | 296 if (wellFormed) { |
294 return ngx_http_xslt_send(r, ctx, | 297 return ngx_http_xslt_send(r, ctx, |
295 ngx_http_xslt_apply_stylesheet(r, ctx)); | 298 ngx_http_xslt_apply_stylesheet(r, ctx)); |
296 } | 299 } |
297 | 300 |
298 xmlFreeDoc(ctx->doc); | 301 xmlFreeDoc(ctx->doc); |