Mercurial > hg > nginx-vendor-current
diff src/http/modules/ngx_http_ssi_filter_module.c @ 246:b52bd034c577 NGINX_0_4_8
nginx 0.4.8
*) Bugfix: if an "include" SSI command were before another "include"
SSI command with an "wait" parameter, then the "wait" parameter
might not work.
*) Bugfix: the ngx_http_flv_module added the FLV header to the full
responses.
Thanks to Alexey Kovyrin.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 11 Oct 2006 00:00:00 +0400 |
parents | 500a3242dff6 |
children | acd2ec3541cb |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_ssi_filter_module.c +++ b/src/http/modules/ngx_http_ssi_filter_module.c @@ -383,6 +383,7 @@ ngx_http_ssi_body_filter(ngx_http_reques ngx_chain_t *cl, **ll; ngx_table_elt_t *param; ngx_connection_t *c; + ngx_http_request_t *pr; ngx_http_ssi_ctx_t *ctx, *mctx; ngx_http_ssi_block_t *bl; ngx_http_ssi_param_t *prm; @@ -417,6 +418,23 @@ ngx_http_ssi_body_filter(ngx_http_reques return NGX_AGAIN; } + for (pr = ctx->wait->parent; pr; pr = pr->parent) { + if (pr == r) { + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, + "http ssi filter \"%V\" flush", &r->uri); + + rc = ngx_http_next_body_filter(r, NULL); + + if (ctx->wait->done) { + ctx->wait = NULL; + } + + if (rc == NGX_ERROR || rc == NGX_AGAIN) { + return rc; + } + } + } + if (ctx->wait == r) { ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "http ssi filter \"%V\" continue", &r->uri);