On Wed, 21 Mar 2001, Mikhail Zabaluev wrote:
> > Что касается EAPI, то он разрабатывался в основном с прицелом на mod_ssl,
> > по крайней мере, в том, что касается ввода-вывода. Сделать через него
> > гзипование не получиться. Нужно патчить buff.c, что и делается в
> > mod_deflate.
>
> Почему не получится? Насколько я мог видеть, там в ключевых местах
> ввода-вывода вставлены "крюки", на которые можно вешать произвольные
> обработчики. Если таким образом можно реализовать кодек SSL, почему нельзя
> сделать inflate/deflate с коррекцией заголовков или те же перекодировки
> для mod_charset?
В том то и дело, что не во всех ключевых местах. Вот, например, как
правится контент в случае mod_charset, mod_deflate и mod_ssl:
1. контент генериться
2. перекодируется - mod_charset
3. гзипется - mod_deflate
4. буфферизуется/разбивается на chunk'и - BUFF
5. шифруется - mod_ssl
6. пишется в сокет - write()
В EAPI есть хук только для 5. И хотя на этот хук можно повесить
хоть десять обработчиков, отработает лишь один (то ли первый, то ли
последний, точно не помню). Да и вешать на него mod_charset
и mod_deflate не получиться - после BUFF, во-первых, никак не
определишь, где хедер, а где тело, а во-вторых, тело уже
может быть разбито на chunk'и (в случае mod_deflate оно будет
разбито всегда).
Что касается коррекции заголовков, то при беглом рассматривании EAPI
на эту тему, я вообще ничего подобного не увидел.
Игорь Сысоев
=============================================================================
= Apache-Rus@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-rus" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/mail-archive =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.