ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] =?KOI8-R?Q?Re=3A_=5Bapache-talk=5D_Re=3A_=5Bapache-talk=5D_=F7=CF?==?KOI8-R?Q?=D0=D2=CF=D3_=D0=D2=CF_subrequest-=D9_=CB_=DA=CE=C1=D4?==?KOI8-R?Q?=CF=CB=C1=CD_Apache_API?=



On Wed, 6 Feb 2002, Sergey Gershtein wrote:

> IS> On Wed, 6 Feb 2002, Sergey Gershtein wrote:
> 
> >> Возникла потребность сделать следующее. Модуль apache делает
> >> внутренний subrequest на заданный URI и предпринимает те или иные
> >> действия в зависимости от результата. Фокус в том, что этот самый
> >> subrequest обрабатывается чем-то внешним (например, cgi-скриптом).
> 
> ...
> 
> 6 февраля 2002 г. в 17:23 Игорь Сысоев писал:
> 
> IS> Стандартными средствами - никак. Но можно сделать, как делает mod_gzip -
> IS> перенаправить вывод во временный файл.
> 
> IS> Делаем ap_sub_req_lookup_uri(), дискриптор временного файла
> IS> записываем в sub_req->connection->client->fd, предварительно сохранив 
>старое
> IS> значение. Выполняем ap_run_sub_req(). Востанавливаем старый дискриптор.
> 
> 
> Спасибо, это уже вариант! А если, скажем, я готов проигнорировать тело
> ответа, мне нужно лишь проанализировать его http-заголовки? В конце
> концов внешнему обработчику нет разницы, давать ответ в теле или в
> заголовках. Можно обойтись без временного файла?
> 
> Допустим я в sub_req->connection->client->fd загоняю дескриптор
> /dev/null, я смогу получить доступ к заголовкам ответа через
> ap_table_get(sub_req->headers_out,"xxx") ?  Этого было бы достаточно.

Можно. Насколько я понимаю, sub_req->headers_out должны оставаться
доступными до ap_destroy_sub_req().

> На самом деле таким экстравагантным способом модуль должен получить
> ответ (да/нет) от некоторого внешнего скрипта (cgi/php и т.п.).  Может
> быть есть другие более правильные подходы к организации подобного
> взаимодействия?

Можно попробовать установить sub_req->header_only = 1. В этом случае 
тело выводиться не будет, а заголовок для сабреквестов никогда не выводится.
mod_cgi header_only понимает. PHP по идее тоже должен, только я не знаю,
на уровне mod_php или же самого скрипта.

Игорь Сысоев

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.