nginx-0.1.0-RELEASE import

*) The first public version.
This commit is contained in:
Igor Sysoev 2004-10-04 15:04:06 +00:00
parent aad1b89b68
commit 0e8348c500
14 changed files with 1555 additions and 1 deletions

85
conf/koi-win Normal file
View File

@ -0,0 +1,85 @@
charset_map koi8-r windows-1251 {
95 95 ; # bullet
9A A0 ; #  
9C B0 ; # °
9E B7 ; # ·
A3 B8 ; # small yo
B3 A8 ; # capital YO
BF A9 ; # (C)
C0 FE ; # small yu
C1 E0 ; # small a
C2 E1 ; # small b
C3 F6 ; # small ts
C4 E4 ; # small d
C5 E5 ; # small ye
C6 F4 ; # small f
C7 E3 ; # small g
C8 F5 ; # small kh
C9 E8 ; # small i
CA E9 ; # small j
CB EA ; # small k
CC EB ; # small l
CD EC ; # small m
CE ED ; # small n
CF EE ; # small o
D0 EF ; # small p
D1 FF ; # small ya
D2 F0 ; # small r
D3 F1 ; # small s
D4 F2 ; # small t
D5 F3 ; # small u
D6 E6 ; # small zh
D7 E2 ; # small v
D8 FC ; # small soft sign
D9 FB ; # small y
DA E7 ; # small z
DB F8 ; # small sh
DC FD ; # small e
DD F9 ; # small shch
DE F7 ; # small ch
DF FA ; # small hard sign
E0 DE ; # capital YU
E1 C0 ; # capital A
E2 C1 ; # capital B
E3 D6 ; # capital TS
E4 C4 ; # capital D
E5 C5 ; # capital YE
E6 D4 ; # capital F
E7 C3 ; # capital G
E8 D5 ; # capital KH
E9 C8 ; # capital I
EA C9 ; # capital J
EB CA ; # capital K
EC CB ; # capital L
ED CC ; # capital M
EE CD ; # capital N
EF CE ; # capital O
F0 CF ; # capital P
F1 DF ; # capital YA
F2 D0 ; # capital R
F3 D1 ; # capital S
F4 D2 ; # capital T
F5 D3 ; # capital U
F6 C6 ; # capital ZH
F7 C2 ; # capital V
F8 DC ; # capital soft sign
F9 DB ; # capital Y
FA C7 ; # capital Z
FB D8 ; # capital SH
FC DD ; # capital E
FD D9 ; # capital SHCH
FE D7 ; # capital CH
FF DA ; # capital hard sign
}

24
conf/mime.types Normal file
View File

@ -0,0 +1,24 @@
types {
text/html html htm shtml;
text/xml xml rss;
text/css css;
text/plain txt;
image/gif gif;
image/png png;
image/jpeg jpeg jpg;
image/x-icon ico;
application/pdf pdf;
application/x-shockwave-flash swf;
application/x-javascript js;
audio/mpeg mp3;
audio/x-realaudio ra;
video/mpeg mpeg mpg;
video/quicktime mov;
video/x-msvideo avi;
video/x-ms-wmv wmv;
}

37
conf/nginx.conf Normal file
View File

@ -0,0 +1,37 @@
user nobody;
worker_processes 3;
#error_log logs/error.log;
#pid logs/nginx.pid;
events {
connections 1024;
}
http {
include conf/mime.types;
default_type application/octet-stream;
sendfile on;
#gzip on;
server {
listen 80;
charset on;
source_charset koi8-r;
#access_log logs/access.log;
location / {
root html;
index index.html index.htm;
}
}
}

View File

@ -0,0 +1,22 @@
<!ELEMENT configuration (length, start, indent, changes+) >
<!ELEMENT length (#PCDATA) >
<!ELEMENT start (#PCDATA) >
<!ELEMENT indent (#PCDATA) >
<!ELEMENT changes (title, length,
bugfix, feature, change, workaround,
(month, month, month, month, month, month,
month, month, month, month, month, month)?) >
<!ATTLIST changes lang ( ru | en) #REQUIRED>
<!ELEMENT title (#PCDATA) >
<!ELEMENT bugfix (#PCDATA) >
<!ELEMENT feature (#PCDATA) >
<!ELEMENT change (#PCDATA) >
<!ELEMENT workaround (#PCDATA) >
<!ELEMENT month (#PCDATA) >

21
docs/dtd/changes.dtd Normal file
View File

@ -0,0 +1,21 @@
<!ENTITY nbsp "&#xA0;" >
<!ELEMENT change_log (changes)* >
<!ATTLIST change_log title CDATA #REQUIRED >
<!ELEMENT changes (change)* >
<!ATTLIST changes ver CDATA #REQUIRED
date CDATA #REQUIRED
>
<!ELEMENT change (para)* >
<!ATTLIST change type (bugfix | feature | change | workaround) #IMPLIED >
<!ELEMENT para (#PCDATA | at | br | nobr)* >
<!ATTLIST para lang (ru | en) #IMPLIED >
<!ELEMENT at EMPTY >
<!ELEMENT br EMPTY >
<!ELEMENT nobr (#PCDATA) >

8
docs/html/index.html Normal file
View File

@ -0,0 +1,8 @@
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>
</body>
</html>

25
docs/text/LICENSE Normal file
View File

@ -0,0 +1,25 @@
/*
* Copyright (C) 2002-2004 Igor Sysoev
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/

3
docs/text/README Normal file
View File

@ -0,0 +1,3 @@
Documentation is available at http://sysoev.ru/nginx/ only.

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="KOI8-R" ?>
<!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" >
<configuration>
<length>78</length>
<start> *) </start>
<indent> </indent>
<changes lang="ru">
<title>éÚÍÅÎÅÎÉÑ × </title>
<length>66</length>
<bugfix>éÓÐÒÁ×ÌÅÎÉÅ</bugfix>
<feature>äÏÂÁ×ÌÅÎÉÅ</feature>
<change>éÚÍÅÎÅÎÉÅ</change>
<workaround>éÚÍÅÎÅÎÉÅ</workaround>
</changes>
<changes lang="en">
<title>Changes with </title>
<length>65</length>
<bugfix>Bugfix</bugfix>
<feature>Feature</feature>
<change>Change</change>
<workaround>Workaround</workaround>
<month> Jan </month>
<month> Feb </month>
<month> Mar </month>
<month> Apr </month>
<month> May </month>
<month> Jun </month>
<month> Jul </month>
<month> Aug </month>
<month> Sep </month>
<month> Oct </month>
<month> Nov </month>
<month> Dec </month>
</changes>
</configuration>

979
docs/xml/nginx/changes.xml Normal file
View File

@ -0,0 +1,979 @@
<?xml version="1.0" encoding="KOI8-R" ?>
<!DOCTYPE change_log SYSTEM "../dtd/changes.dtd" >
<change_log title="mod_accel">
<changes ver="1.0.29" date="15.06.2003">
<change type="bugfix">
<para lang="ru">
mod_accel ÎÅ ÏÐÒÅÄÅÌÑÌ É ÎÅ ÐÁÔÞÉÌ EAPI, ÅÓÌÉ ÓÏÂÉÒÁÌÓÑ ×ÍÅÓÔÅ
Ó mod_ssl-2.8.13-1.3.27+.
</para>
<para lang="en">
mod_accel did not detect and patch broken EAPI when built with
mod_ssl-2.8.13-1.3.27+.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÒÉ ÐÒÏËÓÉÒÏ×ÁÎÉÉ Ó ÐÏÍÏÝØÀ ÍÏÄÕÌÑ mod_rewrite mod_accel
ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÅÒÅÐÉÓÙ×ÁÎÉÅ ÚÁÇÏÌÏ×ËÏ× "Location" É "Refresh" Ó ÐÏÍÏÝØÀ
ÜÔÏÇÏ ÖÅ ÍÏÄÕÌÑ É
ÄÌÑ ÜÔÏÇÏ <!-- ÜÔÉ Ä×Á ÌÉÛÎÉÈ ÓÌÏ×Á ÎÁÐÉÓÁÎÙ ÄÌÑ ÔÕÐÏÇÏ xsltproc -->
ÕËÁÚÙ×ÁÅÔ ÉÍÑ ÂÜËÅÎÄÁ × ÐÅÒÅÍÅÎÎÏÊ
ÓÒÅÄÙ "ACCEL_REWRITE".
</para>
<para lang="en">
when request is proxied with the help of mod_rewrite module mod_accel
set the backend name in the "ACCEL_RWRITE" enviroment variable and
supports the rewriting of "Location" and "Refresh" headers with the help of
mod_rewrite module.
</para>
</change>
<change type="feature">
<para lang="ru">
mod_accel ÐÅÒÅÐÉÓÙ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÚÁÇÏÌÏ×ËÁ "Destination",
ÅÓÌÉ ÉÍÑ ÈÏÓÔÁ × ÜÔÏÍ ÚÁÇÏÌÏ×ËÅ ÓÏ×ÐÁÄÁÅÔ Ó ÓÏÄÅÒÖÉÍÙÍ
ÚÁÇÏÌÏ×ËÁ "Host", ÉÌÉ ÖÅ ÅÓÌÉ URI ÎÅ ÁÂÓÏÌÀÔÎÙÊ.
</para>
<para lang="en">
mod_accel now rewrites "Destination" header if the host name in this header
is as in "Host" header or if the destination URI is not absolute.
</para>
</change>
<change type="bugfix">
<para lang="ru">
mod_accel ÚÁÃÉËÌÉ×ÁÌÓÑ × ÓÌÕÞÁÅ, ÅÓÌÉ ËÌÉÅÎÔ ÚÁÐÒÁÛÉ×ÁÌ byte range,
Á ÂÜËÅÎÄ ÎÅ ÐÅÒÅÄÁ×ÁÌ ËÜÛÉÒÕÅÍÙÊ ÏÔ×ÅÔ ÐÏÌÎÏÓÔØÀ.
</para>
<para lang="en">
mod_accel went into an endless loop if the client requested the byte range
and the backend did not send the full cachable response.
</para>
</change>
</changes>
<changes ver="1.0.28" date="02.05.2003">
<change type="bugfix">
<para lang="ru">
ÓÄÅÌÁÎÁ ÐÒÏ×ÅÒËÁ É ÐÁÔÞ ÄÌÑ EAPI ÉÚ mod_ssl-2.8.13-1.3.27+.
</para>
<para lang="en">
broken EAPI from mod_ssl-2.8.13-1.3.27+ now is checked and patched.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelSetXURI ÎÅ ÒÁÂÏÔÁÌÁ.
</para>
<para lang="en">
AccelSetXURI directive did not work.
</para>
</change>
</changes>
<changes ver="1.0.27" date="26.02.2003">
<change type="bugfix">
<para lang="ru">
ÂÜËÅÎÄÙ, ÉÓÐÏÌØÚÕÀÝÉÅ named-based ×ÉÒÕÔÁÌØÎÙÅ ÈÏÓÔÙ, ÎÅ ÂÙÌÉ ÄÏÓÔÕÐÎÙ
ÞÅÒÅÚ _the_same_host_.
</para>
<para lang="en">
backends that use named-based virtual hosts can not be accessed via
_the_same_host_.
</para>
</change>
</changes>
<changes ver="1.0.26" date="20.12.2002">
<change type="change">
<para lang="ru">
AccelReverse ÒÁÂÏÔÁÅÔ É ÄÌÑ ÚÁÐÒÏÓÏ×, ÐÒÏËÓÉÒÏ×ÁÎÎÙÈ ÞÅÒÅÚ AccelPass.
</para>
<para lang="en">
AccelReverse works for AccelPass'ed requests too.
</para>
</change>
<change type="bugfix">
<para lang="ru">
action remove × accel-cachemgr ÎÅ ÒÁÂÏÔÁÌ Ó URL, × ËÏÔÏÒÙÈ ÓÉÍ×ÏÌÙ
ËÏÄÉÒÏ×ÁÌÉÓØ × ×ÉÄÅ %XX.
</para>
<para lang="en">
accel-cachemgr's remove action did not work with URLs with characters
endcoded as %XX.
</para>
</change>
</changes>
<changes ver="1.0.25" date="20.11.2002">
<change type="bugfix">
<para lang="ru">
ÆÌÁÇÉ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÍÏÄÕÌÅÊ R, Q É F ÚÁÌÉÐÁÌÉ × ËÜÛÅ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ
ÆÁÊÌ ÎÅ ÕÄÁÌÑÌÓÑ ÉÚ ËÜÛÁ.
</para>
<para lang="en">
additional modules R, Q and F flags were sticky until cache file was
not removed from cache.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÎÅ ÒÁÂÏÔÁÌ action remove × accel-cachemgr.
</para>
<para lang="en">
accel-cachemgr's remove action did not work.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÄÁ×ÎÏ ÎÅÍÅÎÑÅÍÙÅ ÄÏËÕÍÅÎÔÙ ÎÅ ËÜÛÉÒÏ×ÁÌÉÓØ, ÅÓÌÉ ÄÌÑ ËÜÛÉÒÏ×ÁÎÉÑ
ÉÓÐÏÌØÚÏ×ÁÌÓÑ AccelLastModifiedFactor.
</para>
<para lang="en">
long invariable documents were not cached if AccelLastModifiedFactor
was used to choose cache time.
</para>
</change>
</changes>
<changes ver="1.0.24" date="21.10.2002">
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ × URL, ÓÏÚÄÁÎÎÙÍ ÍÏÄÕÌÅÍ mod_rewrite, ÎÁÈÏÄÉÌÉÓØ
ÓÉÍ×ÏÌÙ <nobr>× ×ÉÄÅ %XX,</nobr>
ÔÏ ÏÎÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÂÜËÅÎÄÕ × ÒÁÓËÒÙÔÏÍ ×ÉÄÅ.
</para>
<para lang="en">
if mod_rewrite created URL contained characters encoded as %XX then
they was passed to backend unescaped.
</para>
</change>
<change type="change">
<para lang="ru">
ËÌÀÞ -DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ.
</para>
<para lang="en">
-DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ switch was added.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ ACCEL_NOCACHE.
</para>
<para lang="en">
ACCEL_NOCACHE enviroment variable was added.
</para>
</change>
</changes>
<changes ver="1.0.23" date="30.08.2002">
<change type="change">
<para lang="ru">
× ÄÉÒÅËÔÉ×Å FreezeStart.
</para>
<para lang="en">
in FreezeStart directive.
</para>
</change>
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelCacheSetCookie.
</para>
<para lang="en">
AccelCacheSetCookie directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
AccelCacheRoot ÎÅ ÐÏÎÉÍÁÌ ÐÁÒÁÍÅÔÒÙ × ËÁ×ÙÞËÁÈ.
</para>
<para lang="en">
AccelCacheRoot did not understand quoted parameters.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÍÏÄÕÌØ mod_freeze ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌ ÓÈÅÍÙ, ÅÓÌÉ ÏÎÉ ÕËÁÚÁÎÙ ×
ÏÄÉÎÁÒÎÙÈ ËÁ×ÙÞËÁÈ.
</para>
<para lang="en">
mod_freeze did not freeze schemas if they was quoted in apostrophes.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÍÏÄÕÌØ mod_freeze ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌ ÔÜÇ style, ÐÁÒÁÍÅÔÒ style É
ÓÈÅÍÕ behavior:.
</para>
<para lang="en">
mod_freeze did not freeze style tag, style parameter and behavior: schema.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ×ÉÄÁ &lt;&lt;script ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌÁÓØ ÍÏÄÕÌÅÍ mod_freeze.
</para>
<para lang="en">
&lt;&lt;script sequence was not frozen by mod_freeze.
</para>
</change>
<change type="change">
<para lang="ru">
ÏÐÔÉÍÉÚÉÒÏ×ÁÎ ÁÌÇÏÒÉÔÍ ÐÏÉÓËÁ × ÍÏÄÕÌÅ mod_freeze.
</para>
<para lang="en">
mod_freeze's search algorithm was optimized.
</para>
</change>
</changes>
<changes ver="1.0.22" date="12.08.2002">
<change type="bugfix">
<para lang="ru">
ÆÌÁÇÉ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÍÏÄÕÌÅÊ R, Q É F ÎÅ ×ÙÓÔÁ×ÌÑÌÉÓØ,
ÅÓÌÉ ÚÁÐÒÏÓ ÂÙÌ ÎÅËÜÛÉÒÕÅÍÙÍ.
</para>
<para lang="en">
additional modules R, Q and F flags were not set
if request was not cachable.
</para>
</change>
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelPassXAccel.
</para>
<para lang="en">
AccelPassXAccel directive.
</para>
</change>
<change type="feature">
<para lang="ru">
ÍÏÄÕÌØ mod_freeze.
</para>
<para lang="en">
mod_freeze module.
</para>
</change>
</changes>
<changes ver="1.0.21" date="04.07.2002">
<change type="bugfix">
<para lang="ru">
ÄÉÒÅËÔÉ×Á "AccelPassServer off" × Apache-1.3.26 ×ÏÏÂÝÅ ÎÅ ×ÙÄÁ×ÁÌÁ
ÚÁÇÏÌÏ×ÏË "Server".
</para>
<para lang="en">
"AccelPassServer off" did not send any "Server" header in Apache-1.3.26.
</para>
</change>
<change type="feature">
<para lang="ru">
ÄÏËÕÍÅÎÔÁÃÉÑ ÐÏ mod_accel ËÏÐÉÒÕÅÔÓÑ × /manual/mod/mod_accel.html.
</para>
<para lang="en">
mod_accel Russian documentation is copied in /manual/mod/mod_accel.html.
</para>
</change>
</changes>
<changes ver="1.0.20" date="24.06.2002">
<change type="bugfix">
<para lang="ru">
ÐÁÒÁÍÅÔÒ MP × ÄÉÒÅËÔÉ×Å AccelPass ÒÁÂÏÔÁÌ ÎÅËÏÒÒÅËÔÎÏ, ÅÓÌÉ ÔÁËÖÅ
ÂÙÌ ÚÁÄÁÌ ÐÁÒÁÍÅÔÒ PH ÉÌÉ ÉÓÐÏÌØÚÏ×ÁÌÏÓØ ÓÐÅÃÉÁÌØÎÏÅ ÉÍÑ _the_same_host_.
</para>
<para lang="en">
AccelPass MP parameter was worked incorrectly if used with PH parameter
or with special _the_same_host_ host name.
</para>
</change>
</changes>
<changes ver="1.0.19" date="29.05.2002">
<change type="bugfix">
<para lang="ru">
×Ï ×ÒÅÍÑ ÐÌÁ×ÎÏÇÏ (graceful) ÒÅÓÔÁÒÔÁ ÍÏÇ ÐÒÏÉÚÏÊÔÉ segmentation fault
× ÏÓÎÏ×ÎÏÍ ÐÒÏÃÅÓÓÅ, ÅÓÌÉ ×ÓÅ ÒÁÂÏÞÉÅ ÓÌÏÔÙ ÂÙÌÉ ÚÁÎÑÔÙ.
</para>
<para lang="en">
segmentation fault can occur in main process while graceful restart
when all child slots were busy.
</para>
</change>
</changes>
<changes ver="1.0.18" date="12.04.2002">
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Ù AccelRetry5XX É AccelSetXURI.
</para>
<para lang="en">
AccelRetry5XX and AccelSetXURI directives were added.
</para>
</change>
<change type="feature">
<para lang="ru">
ÚÁÍÅÔËÉ accel_request_body É accel_rewrite_response.
</para>
<para lang="en">
accel_request_body and accel_rewrite_response notes were added.
</para>
</change>
<change type="bugfix">
<para lang="ru">
mod_accel ÎÅ ÓÏÂÉÒÁÌÓÑ ËÏÍÐÉÌÑÔÏÒÏÍ aCC ÎÁ ÐÌÁÔÆÏÒÍÅ HP-UX.
óÐÁÓÉÂÏ Marko Asplund, aspa<at/>kronodoc.fi.
</para>
<para lang="en">
mod_accel is not built by aCC on HP-UX.<br/>
Thanks to Marko Asplund, aspa<at/>kronodoc.fi.
</para>
</change>
<change type="change">
<para lang="ru">
ËÏÓÍÅÔÉÞÅÓËÉÅ ÐÒÁ×ËÉ.
</para>
<para lang="en">
code clean up.
</para>
</change>
</changes>
<changes ver="1.0.17" date="29.03.2002">
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ × URL ÐÅÒÅÄ ÁÒÇÕÍÅÎÔÁÍÉ ÎÁÈÏÄÉÌÉÓØ ÓÉÍ×ÏÌÙ <nobr>× ×ÉÄÅ %XX,</nobr>
ÔÏ ÏÎÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÂÜËÅÎÄÕ × ÒÁÓËÒÙÔÏÍ ×ÉÄÅ.
</para>
<para lang="en">
if URL before arguments contained characters encoded as %XX then
they was passed to backend unescaped.
</para>
</change>
</changes>
<changes ver="1.0.16" date="27.03.2002">
<change type="feature">
<para lang="ru">
× ÄÉÒÅËÔÉ×Å AccelPass ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÏÅ
ÉÍÑ ÈÏÓÔÁ _the_same_host_.
</para>
<para lang="en">
special hostname _the_same_host_ can be used in AccelPass directive.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÎÅ ÒÁÂÏÔÁÌÏ ÏÇÒÁÎÉÞÅÎÉÅ ËÏÌÉÞÅÓÔ×Á ÓÏÅÄÉÎÅÎÉÊ É ÖÄÕÝÉÈ ÐÒÏÃÅÓÓÏ×
ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÆÌÁÇÁ PH × ÄÉÒÅËÔÉ×Å AccelPass.
</para>
<para lang="en">
limition of connections and waiting processes does not work
if PH flag in AccelPass directive was used.
</para>
</change>
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelPassServer.
</para>
<para lang="en">
AccelPassServer directive was added.
</para>
</change>
</changes>
<changes ver="1.0.15" date="12.03.2002">
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ ÍÏÄÕÌÉ mod_quoted ÉÌÉ mod_randban ÂÙÌÉ ÓÏÂÒÁÎÙ ÓÔÁÔÉÞÅÓËÉ
ÉÌÉ ÐÏÄÇÒÕÖÁÌÉÓØ Ó ÐÏÍÏÝØÀ LoadModule, ÎÏ ÎÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ
ÄÉÒÅËÔÉ×ÏÊ AddModule ÐÏÓÌÅ ÄÉÒÅËÔÉ×Ù ClearModuleList, ÔÏ
ÄÉÒÅËÔÉ×Ù ÜÔÉÈ ÍÏÄÕÌÅÊ ÎÅ ×ÏÓÐÒÉÎÉÍÁÌÉÓØ.
åÓÌÉ ÖÅ ÄÉÒÅËÔÉ×Ù ÜÔÉÈ ÍÏÄÕÌÅÊ ÎÅ ÉÓÐÏÌØÚÏ×ÁÌÉÓØ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÆÁÊÌÁÈ,
ÔÏ ÐÒÉ ÌÀÂÙÈ ÚÁÐÒÏÓÁÈ, ÏÂÒÁÂÁÔÙ×ÁÅÍÙÈ ÍÏÄÕÌÅÍ mod_accel,
ÐÒÏÉÓÈÏÄÉÌ segmentation fault.
</para>
<para lang="en">
if mod_quoted or mod_randban modules were statically build
or were loaded with LoadModule directive and were not added
with AddModule directive after ClearModuleList directive then
their directives were unrecognized.
If their directives were not used in configration files
then any request handled by mod_accel caused segmentation fault.
</para>
</change>
</changes>
<changes ver="1.0.14" date="26.02.2002">
<change type="bugfix">
<para lang="ru">
ÎÅËÏÒÒÅËÔÎÏ ÏÂÒÁÂÁÔÙ×ÁÌÉÓØ ÏÔ×ÅÔÙ ÂÜËÅÎÄÁ Ó ÂÏÌØÛÉÍÉ ÚÁÇÏÌÏ×ËÁÍÉ.
</para>
<para lang="en">
backend response with big header was incorrectly handled.
</para>
</change>
<change type="workaround">
<para lang="ru">
ÉÇÎÏÒÉÒÕÀÔÓÑ ÓÔÒÏËÉ ÔÉÐÁ "HTTP/1.0 200 OK" × ÓÅÒÅÄÉÎÅ ÚÁÇÏÌÏ×ËÁ ÏÔ×ÅÔÁ
ÂÜËÅÎÄÁ. äÏÂÁ×ÌÅÎÁ ÚÁÐÉÓØ × ErrorLog ÎÅËÏÒÒÅËÔÎÙÈ ÚÁÇÏÌÏ×ËÏ× × ÏÔ×ÅÔÅ
ÂÜËÅÎÄÁ.
</para>
<para lang="en">
lines like "HTTP/1.0 200 OK" are ignored in middle of backend response header.
Incorrect backend header lines are logged in ErrorLog.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelInvalidate, accel-cachemgr É ÚÁÇÏÌÏ×ËÉ ÔÉÐÁ
<nobr>"Pragma: no-cache"</nobr> ÎÅ ÏÂÎÏ×ÌÑÌÉ ËÜÛ,
ÅÓÌÉ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á "AccelUnlinkNoCached off".
</para>
<para lang="en">
AccelInvalidate directive, accel-cachemgr and headers like
<nobr>"Pragma: no-cache"</nobr> did not refresh cache
if AccelUnlinkNoCached directive was off.
</para>
</change>
<change type="change">
<para lang="ru">
ÐÏÒÑÄÏË ÎÁÓÌÅÄÏ×ÁÎÉÑ AccelPass ÉÚÍÅΣÎ, ÓÎÁÞÁÌÁ ÐÒÏ×ÅÒÑÀÔÓÑ
ÄÉÒÅËÔÉ×Ù ÉÚ ×ÉÒÔÕÁÌØÎÏÇÏ ÓÅÒ×ÅÒÁ, Á ÚÁÔÅÍ ÉÚ ÏÓÎÏ×ÎÏÇÏ.
</para>
<para lang="en">
merge order of AccelPass directive is changed. Virtual server direcitves
are checked first.
</para>
</change>
</changes>
<changes ver="1.0.13" date="12.02.2002">
<change type="bugfix">
<para lang="ru">
ÎÅ ËÏÒÒÅËÔÉÒÏ×ÁÌÓÑ ÐÏÒÔ × ÚÁÇÏÌÏ×ËÁÈ "Location" É "Refresh"
ÅÓÌÉ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÆÌÁÇ PH × ÄÉÒÅËÔÉ×Å AccelPass É ÎÏÍÅÒÁ ÐÏÒÔÏ×
ÆÒÏÎÔÅÎÄÁ É ÂÜËÅÎÄÁ ÏÔÌÉÞÁÌÉÓØ.
</para>
<para lang="en">
port was not corrected in "Location" and "Refresh" headers
if PH flag in AccelPass directive was used and frontend and backend
port numbers were not the same.
</para>
</change>
</changes>
<changes ver="1.0.12" date="10.02.2002">
<change type="feature">
<para lang="ru">
ÆÌÁÇ PH × ÄÉÒÅËÔÉ×Å AccelPass.
</para>
<para lang="en">
PH flag was added in AccelPass directive.
</para>
</change>
</changes>
<changes ver="1.0.11" date="01.02.2002">
<change type="change">
<para lang="ru">
ÕÐÒÁÚÄÎÅÎÁ ÄÉÒÅËÔÉ×Á AccelContentTail.
</para>
<para lang="en">
AccelContentTail directive was removed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ ÐÅÒÅÚÁÐÉÓÙ×ÁÅÍÁÑ ÓÔÒÏËÁ ÐÏÐÁÄÁÌÁ ÎÁ ÇÒÁÎÉÃÕ ÂÕÆÅÒÁ, mod_randban
ÍÏÇ ÎÅËÏÒÒÅËÔÎÏ ÐÏÍÅÎÑÔØ ÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ.
</para>
<para lang="en">
mod_randban can incorrectly change random value if string to rewrite
was on buffer edge.
</para>
</change>
<change>
<para lang="ru">
óÏ×ÍÅÓÔÉÍÏÓÔØ Ó Apache 1.3.23.
</para>
<para lang="en">
Apache 1.3.23 compatibility.
</para>
</change>
<change type="feature">
<para lang="ru">
ÅÓÌÉ × ËÏÎÆÉÇÕÒÁÃÉÉ AccelPass ÏÐÉÓÁÎ Location × ×ÉÄÅ /proxied/,
ÔÏ ÐÒÉ ÚÁÐÒÏÓÅ /proxied ×ÏÚ×ÒÁÝÁÅÔÓÑ ÒÅÄÉÒÅËÔ ÎÁ URL Ó ÄÏÂÁ×ÌÅÎÎÙÍ
ÓÌÜÛÏÍ - /proxied/.
</para>
<para lang="en">
if Location is specified in AccelPass as /proxied/ then
on request /proxied redirect is returned to URL with slash added - /proxied/.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÎÅ ×ÏÚ×ÒÁÝÁÌÁÓØ ÏÛÉÂËÁ, ÅÓÌÉ ÎÅ ÕÄÁ×ÁÌÏÓØ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ
ÄÌÑ ÈÒÁÎÅÎÉÑ ÔÅÌÁ ÚÁÐÒÏÓÁ POST.
</para>
<para lang="en">
error was not returned if POST request body temporary file creation was failed.
</para>
</change>
</changes>
<changes ver="1.0.10" date="28.12.2001">
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelReverse.
</para>
<para lang="en">
AccelReverse directive was added.
</para>
</change>
</changes>
<changes ver="1.0.9" date="24.12.2001">
<change type="bugfix">
<para lang="ru">
ÎÁ Solaris 7 É FreeBSD 2.x ÂÏÌØÛÉÅ ÏÔ×ÅÔÙ ÐÅÒÅÄÁ×ÁÌÉÓØ ÎÅ ÄÏ ËÏÎÃÁ.
</para>
<para lang="en">
big repsonses was truncated on Solaris 7 and FreeBSD 2.x.
</para>
</change>
</changes>
<changes ver="1.0.8" date="19.12.2001">
<change type="bugfix">
<para lang="ru">
ÓËÏÒÒÅËÔÉÒÏ×ÁÎÙ ÎÅËÏÔÏÒÙÅ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ.
</para>
<para lang="en">
some error messages was corrected.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ ËÌÉÅÎÔ × ÚÁÐÒÏÓÅ POST ÏÂÒÙ×ÁÌ ÓÏÅÄÉÎÅÎÉÅ,
ÔÏ ÂÜËÅÎÄÕ ÐÅÒÅÄÁ×ÁÌÏÓØ ÎÅÐÏÌÎÏÅ ÔÅÌÏ ÚÁÐÒÏÓÁ.
ôÅÐÅÒØ mod_accel × ÔÁËÏÊ ÓÉÔÕÁÃÉÉ ÎÅ ÓÏÅÄÉÎÑÅÔÓÑ Ó ÂÜËÅÎÄÏÍ.
</para>
<para lang="en">
if client aborted connection while POST
then backend received incompleted request body.
Now mod_accel doesn't connect to backend in this situation.
</para>
</change>
<change type="bugfix">
<para lang="ru">
mod_accel ÎÅ ÓÏÂÉÒÁÌÓÑ ÂÅÚ ÂÉÂÌÉÏÔÅËÉ mm.
</para>
<para lang="en">
mod_accel did not build without mm library.
</para>
</change>
</changes>
<changes ver="1.0.7" date="06.12.2001">
<change type="feature">
<para lang="ru">
× ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ ÄÏÂÁ×ÌÅÎ URL, ËÏÔÏÒÙÊ ÐÅÒÅÄÁ£ÔÓÑ ÂÜËÅÎÄÕ.
</para>
<para lang="en">
backend URL was added in error messages.
</para>
</change>
<change type="feature">
<para lang="ru">
ÔÒÅÔÉÊ ÐÁÒÁÍÅÔÒ × ÄÉÒÅËÔÉ×Å AccelBusyLock.
</para>
<para lang="en">
third parameter was added in AccelBusyLock directory.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÏÒÑÄÏË ÚÁÇÒÕÚËÉ ÍÏÄÕÌÅÊ mod_accel, mod_randban, mod_quoted
É mod_ssl ÎÅ ×ÁÖÅÎ.
</para>
<para lang="en">
load order of mod_accel, mod_randban, mod_quoted and mod_ssl
has no meaning now.
</para>
</change>
<change type="change">
<para lang="ru">
ÄÏÂÁ×ÌÅÎ ÐÁÒÁÍÅÔÒ --with-patch × configure.<br/>
õÐÒÁÚÄÎÅÎÙ ÐÁÒÁÍÅÔÒÙ --without-mod_charset É --without-mod_ssl.
</para>
<para lang="en">
--with-patch directive was added in configure.<br/>
--without-mod_charset and --without-mod_ssl directives is removed.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÕÌÕÞÛÅÎÉÅ ÐÏÒÔÁÂÉÌØÎÏÓÔÉ.
</para>
<para lang="en">
portability enhancement.
</para>
</change>
</changes>
<changes ver="1.0.6" date="02.11.2001">
<change type="feature">
<para lang="ru">
×Ï ÆÌÁÇÅ MP ÄÉÒÅËÔÉ×Ù AccelPass ÍÏÖÎÏ ÕËÁÚÙ×ÁÔØ ÔÜÇ.
</para>
<para lang="en">
MP flag of AccelPass directive can have tag.
</para>
</change>
<change type="feature">
<para lang="ru">
ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÐÒÏËÓÉÒÏ×ÁÎÉÑ (ÆÌÁÇ P) × ÄÉÒÅËÔÉ×Å
RewriteRule ÍÏÄÕÌÑ mod_rewrite ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÌÁÇ MP.
</para>
<para lang="en">
MP flag can be used in mod_rewrite module RewriteRule
directive when proxing is specified (P flag).
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÒÉ ÕËÁÚÁÎÉÉ ×ÒÅÍÅÎÉ ËÜÛÉÒÏ×ÁÎÉÑ Ó ÐÏÍÏÝØÀ ÄÉÒÅËÔÉ×
AccelDefaultExpire ÉÌÉ AccelLastModifiedFactor ÏÔ×ÅÔ ÎÅ ÓÏÈÒÁÎÑÌÓÑ
× ËÜÛ, ÅÓÌÉ ÒÁÚÎÉÃÁ ×Ï ×ÒÅÍÅÎÉ ÍÅÖÄÕ ÆÒÏÎÔÅÎÄÏÍ É ÂÜËÅÎÄÏÍ ÂÙÌÁ
ÂÏÌØÛÅ ×ÒÅÍÑ ËÜÛÉÒÏ×ÁÎÉÑ.
</para>
<para lang="en">
if time to cache is specified in AccelDefaultExpire or
AccelLastModifiedFactor directive and time difference between
frontend and backend is more then specified time then answer
was not saved in cache.
</para>
</change>
</changes>
<changes ver="1.0.5" date="18.10.2001">
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelIgnoreAuth.
</para>
<para lang="en">
AccelIgnoreAuth directive was added.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÐÒÏËÓÉÒÏ×ÁÎÉÑ (ÆÌÁÇ P) × ÄÉÒÅËÔÉ×Å
RewriteRule ÍÏÄÕÌÑ mod_rewrite ÍÏÄÕÌØ mod_proxy ÄÕÂÌÉÒÏ×ÁÌ
ÓÔÒÏËÕ ÁÒÇÕÍÅÎÔÏ×.
</para>
<para lang="en">
mod_proxy module duplicated argument string when proxing
is specified in mod_rewrite module RewriteRule directive (P flag).
</para>
</change>
</changes>
<changes ver="1.0.4" date="16.10.2001">
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ ÂÜËÅÎÄÏ× ÎÅÓËÏÌØËÏ É Ó ÏÄÎÉÍ ÉÚ ÎÉÈ ÓÏÅÄÉÎÅÎÉÅ
ÎÅ ÂÙÌÏ ÕÓÔÁÎÏ×ÌÅÎÏ, ÔÏ ÉÎÆÏÒÍÁÃÉÑ Ï ÜÔÏÊ ÐÏÐÙÔËÅ × ÚÁÍÅÔËÉ
%{accel*}x ÎÅ ÄÏÂÁ×ÌÑÌÁÓØ.
</para>
<para lang="en">
if there are several backends and connection with one of them
was not established then %{accel*}x notes did not contain state of it.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÏÔ ÂÜËÅÎÄÁ ÂÏÌØÛÏÇÏ ÚÁÇÏÌÏ×ËÁ ÐÒÏÉÓÈÏÄÉÌ
segmentation fault.
</para>
<para lang="en">
backend big header caused segmentation fault.
</para>
</change>
<change type="bugfix">
<para lang="ru">
× accel-cachemgr ÄÏÂÁ×ÌÅÎÙ Ä×Á ÓÏÓÔÏÑÎÉÑ - invalid
É no_accelerated.
</para>
<para lang="en">
two status codes - invalid and no_accelerated was added
in accel-cachemgr.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÄÉÒÅËÔÉ×Á RewriteRule ÍÏÄÕÌÑ mod_rewrite Ó ÆÌÁÇÏÍ [P]
ÒÁÂÏÔÁÌÁ ÔÏÌØËÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ × SSI.
</para>
<para lang="en">
mod_rewrite module RewriteRule directive with flag [P]
worked in SSI enviroment only.
</para>
</change>
</changes>
<changes ver="1.0.3" date="10.10.2001">
<change>
<para lang="ru">
éÚÍÅÎÅÎÉÑ × ÄÉÒÅËÔÉ×Å AccelCacheCookie:
äÏÂÁ×ÌÅÎÙ ÐÁÒÁÍÅÔÒ "all", ÚÁÐÒÅÝÁÀÝÉÅ ÐÁÒÁÍÅÔÒÙ É ÒÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ.
÷ ÏÄÎÏÊ ÄÉÒÅËÔÉ×Å ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎÏ ÎÅÓËÏÌØËÏ ÐÁÒÁÍÅÔÒÏ×.
äÉÒÅËÔÉ×Ù ÉÚ ×ÌÏÖÅÎÎÙÈ ÂÌÏËÏ× ÎÅ ÏÂßÅÄÉÎÑÀÔÓÑ.
éÍÅÎÁ cookie ÓÏÒÔÉÒÕÀÔÓÑ × ÁÌÆÁ×ÉÔÎÏÍ ÐÏÒÑÄËÅ.
</para>
<para lang="en">
Changes in AccelCacheCookie directive:
"all" parameter, supressing parameters and regular expressions was added.
There can be several parameters in one directive.
Directives is not merged.
Cookie names is sorted in alphabetical order.
</para>
</change>
<change>
<para lang="ru">
éÚÍÅÎÅÎÉÑ × ÄÉÒÅËÔÉ×Å AccelNoPass:
òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÎÅÞÕÓÔ×ÉÔÅÌØÎÏ Ë ÒÅÇÉÓÔÒÕ.
íÅÖÄÕ ÓÉÍ×ÏÌÏÍ "~" É ÒÅÇÕÌÑÒÎÙÍ ×ÙÒÁÖÅÎÉÅÍ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÒÏÂÅÌÁ.
÷ ÏÄÎÏÊ ÄÉÒÅËÔÉ×Å ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎÏ ÎÅÓËÏÌØËÏ ÐÁÒÁÍÅÔÒÏ×.
</para>
<para lang="en">
Changes in AccelNoPass directive:
Regular expression can be case-insensitive.
There should not be space between "~" symbol and regular expression.
There can be several parameters in one directive.
</para>
</change>
</changes>
<changes ver="1.0.2" date="04.10.2001">
<change type="feature">
<para lang="ru">
ÄÉÒÅËÔÉ×Á AccelCacheCookie.
</para>
<para lang="en">
AccelCacheCookie directive was added.
</para>
</change>
<change type="feature">
<para lang="ru">
ÚÁÍÅÔËÁ accel_nocache.
</para>
<para lang="en">
accel_nocache note was added.
</para>
</change>
<change type="feature">
<para lang="ru">
ÏÂÒÁÂÏÔÞÉË accel-cachemgr.
</para>
<para lang="en">
accel-cachemgr handler was added.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÐÒÉ ÚÁÐÒÏÓÅ ÎÅÓËÏÌØËÉÈ ÎÅ×ÏÚÒÁÓÔÁÀÝÉÈ byteranges ÍÏÇ
×ÙÄÁ×ÁÔØÓÑ ÎÅ×ÅÒÎÙÊ ÏÔ×ÅÔ.
</para>
<para lang="en">
answer may be wrong if request contains several non-growing
byteranges.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÚÁÍÅÔËÁ %{accel_r}x ÎÅ ÚÁÐÉÓÙ×ÁÌÁÓØ × ÌÏÇ.
</para>
<para lang="en">
%{accel_r}x note was not logged.
</para>
</change>
<change type="bugfix">
<para lang="ru">
ÅÓÌÉ ÏÔ×ÅÔ ÎÅËÜÛÉÒÕÅÍÙÊ, ÔÏ ÐÒÉ ÐÒÅÖÄÅ×ÒÅÍÅÎÎÏÍ ÏÂÒÙ×Å
ÓÏÅÄÉÎÅÎÉÑ Ó ËÌÉÅÎÔÏÍ ÓÏÅÄÉÎÅÎÉÅ Ó ÂÜËÅÎÄÏÍ ÎÅ ÚÁËÒÙ×ÁÌÏÓØ ÓÒÁÚÕ.
</para>
<para lang="en">
if response is not cachable and client prematurely closes
connection then connection to backend was not closed at once.
</para>
</change>
</changes>
<changes ver="1.0.1" date="29.08.2001">
<change type="bugfix">
<para lang="ru">
ÏÛÉÂËÁ × accel_read_and_check_writable() ×ÙÚÙ×ÁÌÁ ÎÁÇÒÕÚËÕ ÎÁ ÐÒÏÃÅÓÓÏÒ.
</para>
<para lang="en">
bug in accel_read_and_check_writable() caused high CPU usage.
</para>
</change>
</changes>
<changes ver="1.0.0" date="28.08.2001">
<change>
<para lang="ru">
ðÅÒ×ÁÑ ×ÅÒÓÉÑ.<br/>
ôÅÓÔÉÒÏ×ÁÌÁÓØ ÎÁ Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 ÎÁ
<nobr>FreeBSD 3.4, 4.2.</nobr>
</para>
<para lang="en">
First release.<br/>
Tested with Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 on FreeBSD 3.4, 4.2.
</para>
</change>
</changes>
</change_log>

118
docs/xsls/changes.xsls Normal file
View File

@ -0,0 +1,118 @@
X:stylesheet {
X:output method="text" encoding="koi8-r";
X:param lang="'en'";
X:param configuration="'../xml/change_log_conf.xml'";
X:var conf = "document($configuration)/configuration";
X:var start = "$conf/start";
X:var indent = "$conf/indent";
X:var max = "$conf/length";
X:var br = {&lt;br&gt;}
X:template = "/" { !! "change_log"; }
X:template = "change_log" { !! "changes"; }
X:template = "changes" {
X:text {&#10;}
!{substring(concat($conf/changes[@lang=$lang]/title,
//change_log/@title,
' ', @ver,
' '),
1, $conf/changes[@lang=$lang]/length)}
X:if "$lang='ru'" { !{@date} }
X:if "$lang='en'" {
!{substring(@date, 1, 2)}
!{$conf/changes[@lang=$lang]/month[number(substring(current()/@date,
4, 2))]}
!{substring(@date, 7, 4)}
}
X:text {&#10;}
!! "change";
X:text {&#10;}
}
X:template = "change" {
X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]"
X:var postfix = { X:if "$prefix" { X:text {: } } }
!! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)");
}
X:template para(prefix) = "para" {
X:var text = { !!; }
X:text {&#10;}
!wrap(text = "normalize-space($text)",
prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } })
}
X:template wrap(text, prefix) {
X:if "$text" {
X:var offset = {
X:if "starts-with($text, concat($br, ' '))" {
!{string-length($br) + 2}
} else {
1
}
}
X:var length = {
!length(text = "substring($text, $offset)",
prefix = "string-length($prefix)",
length = "$max")
}
!{$prefix}
!{translate(substring($text, $offset, $length), '&#xA0;', ' ')}
X:text {&#10;}
!wrap(text = "substring($text, $length + $offset)", prefix = "$indent")
}
}
X:template length(text, prefix, length) {
X:var break = "substring-before(substring($text, 1, $length - $prefix),
$br)"
X:choose {
X:when "$break" { !{string-length($break)} }
X:when "$length = 0" { !{$max} }
X:when "string-length($text) + $prefix &lt;= $length
or substring($text, $length - $prefix, 1) = ' '"
{
!{$length - $prefix}
}
X:otherwise {
!length(text = "$text", prefix = "$prefix", length = "$length - 1")
}
}
}
X:template = "at" {@}
X:template = "br" { !{$br} }
X:template = "nobr" { !{translate(., ' ', '&#xA0;')} }
}

29
docs/xsls/dump.xsls Normal file
View File

@ -0,0 +1,29 @@
X:stylesheet {
X:output method="xml"
X:param indent-increment="' '";
X:template noname(indent="'&#xA;'") = "*" {
!{$indent}
X:if "name()='xsl:template'" {
!{$indent}
}
X:copy {
X:copy-of "@*"
!!( indent = "concat($indent, $indent-increment)" );
X:if "./* " { !{$indent} }
}
}
X:template = "comment()|processing-instruction()" {
X:copy;
}
<!--
X:template ="text()[normalize-space(.)='']" {}
-->
}

158
docs/xslt/changes.xslt Normal file
View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="koi8-r" method="text"/>
<xsl:param select="'en'" name="lang"/>
<xsl:param select="'../xml/change_log_conf.xml'" name="configuration"/>
<xsl:variable select="document($configuration)/configuration" name="conf"/>
<xsl:variable select="$conf/start" name="start"/>
<xsl:variable select="$conf/indent" name="indent"/>
<xsl:variable select="$conf/length" name="max"/>
<xsl:variable name="br">&lt;br&gt;</xsl:variable>
<xsl:template match="/">
<xsl:apply-templates select="change_log"/>
</xsl:template>
<xsl:template match="change_log">
<xsl:apply-templates select="changes"/>
</xsl:template>
<xsl:template match="changes">
<xsl:text>
</xsl:text>
<xsl:value-of select="substring(concat($conf/changes[@lang=$lang]/title, //change_log/@title, ' ', @ver, ' '), 1, $conf/changes[@lang=$lang]/length)"/>
<xsl:if test="$lang='ru'">
<xsl:value-of select="@date"/>
</xsl:if>
<xsl:if test="$lang='en'">
<xsl:value-of select="substring(@date, 1, 2)"/>
<xsl:value-of select="$conf/changes[@lang=$lang]/month[number(substring(current()/@date, 4, 2))]"/>
<xsl:value-of select="substring(@date, 7, 4)"/>
</xsl:if>
<xsl:text>
</xsl:text>
<xsl:apply-templates select="change"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="change">
<xsl:variable select="$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" name="prefix"/>
<xsl:variable name="postfix">
<xsl:if test="$prefix">
<xsl:text>: </xsl:text>
</xsl:if>
</xsl:variable>
<xsl:apply-templates select="para[@lang=$lang]">
<xsl:with-param select="concat($start, $prefix, $postfix)" name="prefix"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="para" name="para">
<xsl:param name="prefix"/>
<xsl:variable name="text">
<xsl:apply-templates/>
</xsl:variable>
<xsl:text>
</xsl:text>
<xsl:call-template name="wrap">
<xsl:with-param select="normalize-space($text)" name="text"/>
<xsl:with-param name="prefix">
<xsl:choose>
<xsl:when test="position() = 1">
<xsl:value-of select="$prefix"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$indent"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="wrap">
<xsl:param name="text"/>
<xsl:param name="prefix"/>
<xsl:if test="$text">
<xsl:variable name="offset">
<xsl:choose>
<xsl:when test="starts-with($text, concat($br, ' '))">
<xsl:value-of select="string-length($br) + 2"/>
</xsl:when>
<xsl:otherwise>
1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="length">
<xsl:call-template name="length">
<xsl:with-param select="substring($text, $offset)" name="text"/>
<xsl:with-param select="string-length($prefix)" name="prefix"/>
<xsl:with-param select="$max" name="length"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$prefix"/>
<xsl:value-of select="translate(substring($text, $offset, $length), ' ', ' ')"/>
<xsl:text>
</xsl:text>
<xsl:call-template name="wrap">
<xsl:with-param select="substring($text, $length + $offset)" name="text"/>
<xsl:with-param select="$indent" name="prefix"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="length">
<xsl:param name="text"/>
<xsl:param name="prefix"/>
<xsl:param name="length"/>
<xsl:variable select="substring-before(substring($text, 1, $length - $prefix), $br)" name="break"/>
<xsl:choose>
<xsl:when test="$break">
<xsl:value-of select="string-length($break)"/>
</xsl:when>
<xsl:when test="$length = 0">
<xsl:value-of select="$max"/>
</xsl:when>
<xsl:when test="string-length($text) + $prefix &lt;= $length or substring($text, $length - $prefix, 1) = ' '">
<xsl:value-of select="$length - $prefix"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="length">
<xsl:with-param select="$text" name="text"/>
<xsl:with-param select="$prefix" name="prefix"/>
<xsl:with-param select="$length - 1" name="length"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="at">@</xsl:template>
<xsl:template match="br">
<xsl:value-of select="$br"/>
</xsl:template>
<xsl:template match="nobr">
<xsl:value-of select="translate(., ' ', ' ')"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -55,7 +55,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log)
name[0] = CTL_KERN;
name[1] = KERN_RTSIGMAX;
len = sizeof(rtsig_max);
len = sizeof(ngx_linux_rtsig_max);
if (sysctl(name, sizeof(name), &ngx_linux_rtsig_max, &len, NULL, 0) == -1) {
ngx_log_error(NGX_LOG_INFO, log, ngx_errno,
"sysctl(KERN_RTSIGMAX) failed");