On Mon, Jul 09, 2007 at 06:56:35PM +0400, Denis Erygin wrote:
> В общем, все разрешилось.
>
> Если вставить ngx_http_subrequest в ngx_http_*_body_filter,
> то это также приведет к вызову ngx_http_*_body_filter ( r, NULL ),
> но с помощью флага в контекте это решается.
>
> По поводу того, как в ssi сделано ожидание ngx_http_subrequest:
>
> Зачем это?
>
> for ( pr = ctx->wait->parent; pr; pr = pr->parent )
> {
> if ( pr == r )
> {
> rc = ngx_http_next_body_filter ( r, NULL );
>
> if ( ctx->wait->done ) ctx->wait = NULL;
>
> if ( rc == NGX_ERROR || rc == NGX_AGAIN )
> return rc;
> }
> }
>
> Я так понимаю, это нужно для ожидания нескольких ngx_http_subrequest?
По умолчанию SSI запускает подзапросы параллельно.
Это код реализует параметр wait="yes".
--
Игорь Сысоев
http://sysoev.ru