On Wed, 21 Mar 2001, Mikhail Zabaluev wrote:
> > > Чтобы без проблем сосуществовать с другим хаком, имя которому - 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?
>
Учитывая то, что для mod_charset я это делал, думаю, что и mod_gzip можно
также было сделать... Да, нужно было сколько-то hook'ов дополнительтно
добавить к EAPI. Немного и код все равно КУДА читабельней получается, чем
текущая каша в mod_gzip :-/
P.S. С самим EAPI я mod_charset я не скрещивал - я использовал свою
версию, которая на порядок быстрее (что более важно: ее скорость не
зависит от колиества hook'ов в то время как у Engelschall'а время вызова
прямо пропорционально ОБЩЕМУ количеству hook'ов в Apache), но требует
больше писанины; поскольку в mod_ssl основное время все равно уходит на
шифрование, то Engelshchall предпочел простоту написания; для mod_gzip это
не совсем так, а для mod_charset - совсем не так, почему я и сотворил свою
версию.
=============================================================================
= 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.