Hello Igor,
On Tue, Mar 20, 2001 at 12:20 +0300, Igor Sysoev wrote:
>
>
> On Tue, 20 Mar 2001, Mikhail Zabaluev wrote:
>
> > Бороть mod_gzip затруднительно, поскольку его исходный текст представляет
> > из себя один файл на C из более чем 13000 строк. Вдобавок, добрая часть
> > этой глыбы посвящена реализации алгоритма, с которым прекрасно справляется
> > библиотека zlib. Видя такое, хочется юзать винтовку, а не отладчик.
> > Код обработки запросов в этом модуле, по моим впечатлениям - большой хак.
>
> Это точно. Они взяли на себя диспетчинг обработки всех фаз.
> Плюс все динамические респонзы они сначала скидывают во временные
> файлы, которые потом гзипиться.
> К сожалению, API Апача 1.3.x не оставляет более прямых методов.
Да, только в Apache 2.x будет "щасьте для всех даром".
> > Чтобы без проблем сосуществовать с другим хаком, имя которому - Russian
> > Apache, хак должен быть элегантен, как, например, EAPI товарища
> > Engelschall'а. Забавно, в mod_ssl и mod_gzip решаются сходные задачи -
> > сделать "кодек" ввода-вывода незаметным для подсистемы обработки запросов
> > - а подходы разные, как божий дар и яичница.
>
> На самом деле, чтобы RA перекодировал то, что потом будет гзипиться, нужно
> патчить именно RA. Но в ситуации с mod_gzip это не поможет, потому как
> он гзипит до того, как это попадает к RA.
>
> Что касается EAPI, то он разрабатывался в основном с прицелом на mod_ssl,
> по крайней мере, в том, что касается ввода-вывода. Сделать через него
> гзипование не получиться. Нужно патчить buff.c, что и делается в
> mod_deflate.
Почему не получится? Насколько я мог видеть, там в ключевых местах
ввода-вывода вставлены "крюки", на которые можно вешать произвольные
обработчики. Если таким образом можно реализовать кодек SSL, почему нельзя
сделать inflate/deflate с коррекцией заголовков или те же перекодировки
для mod_charset?
--
Stay tuned,
MhZ mailto:mookid@xxxxxxxxx
-----------
Knowledge is power.
-- Francis Bacon
=============================================================================
= 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.