diff --git a/conf/koi-win b/conf/koi-win
new file mode 100644
index 000000000..92cabb140
--- /dev/null
+++ b/conf/koi-win
@@ -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
+}
diff --git a/conf/mime.types b/conf/mime.types
new file mode 100644
index 000000000..f8df51cb2
--- /dev/null
+++ b/conf/mime.types
@@ -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;
+}
diff --git a/conf/nginx.conf b/conf/nginx.conf
new file mode 100644
index 000000000..00025101a
--- /dev/null
+++ b/conf/nginx.conf
@@ -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;
+ }
+
+ }
+
+}
diff --git a/docs/dtd/change_log_conf.dtd b/docs/dtd/change_log_conf.dtd
new file mode 100644
index 000000000..40a012335
--- /dev/null
+++ b/docs/dtd/change_log_conf.dtd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/dtd/changes.dtd b/docs/dtd/changes.dtd
new file mode 100644
index 000000000..5b229d5eb
--- /dev/null
+++ b/docs/dtd/changes.dtd
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/html/index.html b/docs/html/index.html
new file mode 100644
index 000000000..1f7927539
--- /dev/null
+++ b/docs/html/index.html
@@ -0,0 +1,8 @@
+
+
+Welcome to nginx!
+
+
+Welcome to nginx!
+
+
diff --git a/docs/text/LICENSE b/docs/text/LICENSE
new file mode 100644
index 000000000..f057c0b8e
--- /dev/null
+++ b/docs/text/LICENSE
@@ -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.
+ *
+ */
diff --git a/docs/text/README b/docs/text/README
new file mode 100644
index 000000000..626f0a53e
--- /dev/null
+++ b/docs/text/README
@@ -0,0 +1,3 @@
+
+Documentation is available at http://sysoev.ru/nginx/ only.
+
diff --git a/docs/xml/change_log_conf.xml b/docs/xml/change_log_conf.xml
new file mode 100644
index 000000000..9b1218449
--- /dev/null
+++ b/docs/xml/change_log_conf.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+78
+
+ *)
+
+
+
+ Изменения в
+ 66
+
+ Исправление
+ Добавление
+ Изменение
+ Изменение
+
+
+
+ Changes with
+ 65
+
+ Bugfix
+ Feature
+ Change
+ Workaround
+
+ Jan
+ Feb
+ Mar
+ Apr
+ May
+ Jun
+ Jul
+ Aug
+ Sep
+ Oct
+ Nov
+ Dec
+
+
+
+
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
new file mode 100644
index 000000000..a277595c7
--- /dev/null
+++ b/docs/xml/nginx/changes.xml
@@ -0,0 +1,979 @@
+
+
+
+
+
+
+
+
+
+
+
+mod_accel не определял и не патчил EAPI, если собирался вместе
+с mod_ssl-2.8.13-1.3.27+.
+
+
+mod_accel did not detect and patch broken EAPI when built with
+mod_ssl-2.8.13-1.3.27+.
+
+
+
+
+
+при проксировании с помощью модуля mod_rewrite mod_accel
+поддерживает переписывание заголовков "Location" и "Refresh" с помощью
+этого же модуля и
+для этого
+указывает имя бэкенда в переменной
+среды "ACCEL_REWRITE".
+
+
+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.
+
+
+
+
+
+mod_accel переписывает содержимое заголовка "Destination",
+если имя хоста в этом заголовке совпадает с содержимым
+заголовка "Host", или же если URI не абсолютный.
+
+
+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.
+
+
+
+
+
+mod_accel зацикливался в случае, если клиент запрашивал byte range,
+а бэкенд не передавал кэшируемый ответ полностью.
+
+
+mod_accel went into an endless loop if the client requested the byte range
+and the backend did not send the full cachable response.
+
+
+
+
+
+
+
+
+
+
+сделана проверка и патч для EAPI из mod_ssl-2.8.13-1.3.27+.
+
+
+broken EAPI from mod_ssl-2.8.13-1.3.27+ now is checked and patched.
+
+
+
+
+
+директива AccelSetXURI не работала.
+
+
+AccelSetXURI directive did not work.
+
+
+
+
+
+
+
+
+
+
+бэкенды, использующие named-based вирутальные хосты, не были доступны
+через _the_same_host_.
+
+
+backends that use named-based virtual hosts can not be accessed via
+_the_same_host_.
+
+
+
+
+
+
+
+
+
+
+AccelReverse работает и для запросов, проксированных через AccelPass.
+
+
+AccelReverse works for AccelPass'ed requests too.
+
+
+
+
+
+action remove в accel-cachemgr не работал с URL, в которых символы
+кодировались в виде %XX.
+
+
+accel-cachemgr's remove action did not work with URLs with characters
+endcoded as %XX.
+
+
+
+
+
+
+
+
+
+
+флаги дополнительных модулей R, Q и F залипали в кэше до тех пор, пока
+файл не удалялся из кэша.
+
+
+additional modules R, Q and F flags were sticky until cache file was
+not removed from cache.
+
+
+
+
+
+не работал action remove в accel-cachemgr.
+
+
+accel-cachemgr's remove action did not work.
+
+
+
+
+
+давно неменяемые документы не кэшировались, если для кэширования
+использовался AccelLastModifiedFactor.
+
+
+long invariable documents were not cached if AccelLastModifiedFactor
+was used to choose cache time.
+
+
+
+
+
+
+
+
+
+
+если в URL, созданным модулем mod_rewrite, находились
+символы в виде %XX,
+то они передавались бэкенду в раскрытом виде.
+
+
+if mod_rewrite created URL contained characters encoded as %XX then
+they was passed to backend unescaped.
+
+
+
+
+
+ключ -DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ.
+
+
+-DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ switch was added.
+
+
+
+
+
+переменная среды ACCEL_NOCACHE.
+
+
+ACCEL_NOCACHE enviroment variable was added.
+
+
+
+
+
+
+
+
+
+
+в директиве FreezeStart.
+
+
+in FreezeStart directive.
+
+
+
+
+
+директива AccelCacheSetCookie.
+
+
+AccelCacheSetCookie directive.
+
+
+
+
+
+AccelCacheRoot не понимал параметры в кавычках.
+
+
+AccelCacheRoot did not understand quoted parameters.
+
+
+
+
+
+модуль mod_freeze не замораживал схемы, если они указаны в
+одинарных кавычках.
+
+
+mod_freeze did not freeze schemas if they was quoted in apostrophes.
+
+
+
+
+
+модуль mod_freeze не замораживал тэг style, параметр style и
+схему behavior:.
+
+
+mod_freeze did not freeze style tag, style parameter and behavior: schema.
+
+
+
+
+
+последовательность вида <<script не замораживалась модулем mod_freeze.
+
+
+<<script sequence was not frozen by mod_freeze.
+
+
+
+
+
+оптимизирован алгоритм поиска в модуле mod_freeze.
+
+
+mod_freeze's search algorithm was optimized.
+
+
+
+
+
+
+
+
+
+
+флаги дополнительных модулей R, Q и F не выставлялись,
+если запрос был некэшируемым.
+
+
+additional modules R, Q and F flags were not set
+if request was not cachable.
+
+
+
+
+
+директива AccelPassXAccel.
+
+
+AccelPassXAccel directive.
+
+
+
+
+
+модуль mod_freeze.
+
+
+mod_freeze module.
+
+
+
+
+
+
+
+
+
+
+директива "AccelPassServer off" в Apache-1.3.26 вообще не выдавала
+заголовок "Server".
+
+
+"AccelPassServer off" did not send any "Server" header in Apache-1.3.26.
+
+
+
+
+
+документация по mod_accel копируется в /manual/mod/mod_accel.html.
+
+
+mod_accel Russian documentation is copied in /manual/mod/mod_accel.html.
+
+
+
+
+
+
+
+
+
+
+параметр MP в директиве AccelPass работал некорректно, если также
+был задал параметр PH или использовалось специальное имя _the_same_host_.
+
+
+AccelPass MP parameter was worked incorrectly if used with PH parameter
+or with special _the_same_host_ host name.
+
+
+
+
+
+
+
+
+
+
+во время плавного (graceful) рестарта мог произойти segmentation fault
+в основном процессе, если все рабочие слоты были заняты.
+
+
+segmentation fault can occur in main process while graceful restart
+when all child slots were busy.
+
+
+
+
+
+
+
+
+
+
+директивы AccelRetry5XX и AccelSetXURI.
+
+
+AccelRetry5XX and AccelSetXURI directives were added.
+
+
+
+
+
+заметки accel_request_body и accel_rewrite_response.
+
+
+accel_request_body and accel_rewrite_response notes were added.
+
+
+
+
+
+mod_accel не собирался компилятором aCC на платформе HP-UX.
+Спасибо Marko Asplund, aspakronodoc.fi.
+
+
+mod_accel is not built by aCC on HP-UX.
+Thanks to Marko Asplund, aspakronodoc.fi.
+
+
+
+
+
+косметические правки.
+
+
+code clean up.
+
+
+
+
+
+
+
+
+
+
+если в URL перед аргументами находились символы в виде %XX,
+то они передавались бэкенду в раскрытом виде.
+
+
+if URL before arguments contained characters encoded as %XX then
+they was passed to backend unescaped.
+
+
+
+
+
+
+
+
+
+
+в директиве AccelPass можно использовать специальное
+имя хоста _the_same_host_.
+
+
+special hostname _the_same_host_ can be used in AccelPass directive.
+
+
+
+
+
+не работало ограничение количества соединений и ждущих процессов
+при использовании флага PH в директиве AccelPass.
+
+
+limition of connections and waiting processes does not work
+if PH flag in AccelPass directive was used.
+
+
+
+
+
+директива AccelPassServer.
+
+
+AccelPassServer directive was added.
+
+
+
+
+
+
+
+
+
+
+если модули mod_quoted или mod_randban были собраны статически
+или подгружались с помощью LoadModule, но не были добавлены
+директивой AddModule после директивы ClearModuleList, то
+директивы этих модулей не воспринимались.
+Если же директивы этих модулей не использовались в конфигурационных файлах,
+то при любых запросах, обрабатываемых модулем mod_accel,
+происходил segmentation fault.
+
+
+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.
+
+
+
+
+
+
+
+
+
+
+некорректно обрабатывались ответы бэкенда с большими заголовками.
+
+
+backend response with big header was incorrectly handled.
+
+
+
+
+
+игнорируются строки типа "HTTP/1.0 200 OK" в середине заголовка ответа
+бэкенда. Добавлена запись в ErrorLog некорректных заголовков в ответе
+бэкенда.
+
+
+lines like "HTTP/1.0 200 OK" are ignored in middle of backend response header.
+Incorrect backend header lines are logged in ErrorLog.
+
+
+
+
+
+директива AccelInvalidate, accel-cachemgr и заголовки типа
+"Pragma: no-cache" не обновляли кэш,
+если задана директива "AccelUnlinkNoCached off".
+
+
+AccelInvalidate directive, accel-cachemgr and headers like
+"Pragma: no-cache" did not refresh cache
+if AccelUnlinkNoCached directive was off.
+
+
+
+
+
+порядок наследования AccelPass изменён, сначала проверяются
+директивы из виртуального сервера, а затем из основного.
+
+
+merge order of AccelPass directive is changed. Virtual server direcitves
+are checked first.
+
+
+
+
+
+
+
+
+
+
+не корректировался порт в заголовках "Location" и "Refresh"
+если использовался флаг PH в директиве AccelPass и номера портов
+фронтенда и бэкенда отличались.
+
+
+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.
+
+
+
+
+
+
+
+
+
+
+флаг PH в директиве AccelPass.
+
+
+PH flag was added in AccelPass directive.
+
+
+
+
+
+
+
+
+
+
+упразднена директива AccelContentTail.
+
+
+AccelContentTail directive was removed.
+
+
+
+
+
+если перезаписываемая строка попадала на границу буфера, mod_randban
+мог некорректно поменять случайное число.
+
+
+mod_randban can incorrectly change random value if string to rewrite
+was on buffer edge.
+
+
+
+
+
+Совместимость с Apache 1.3.23.
+
+
+Apache 1.3.23 compatibility.
+
+
+
+
+
+если в конфигурации AccelPass описан Location в виде /proxied/,
+то при запросе /proxied возвращается редирект на URL с добавленным
+слэшом - /proxied/.
+
+
+if Location is specified in AccelPass as /proxied/ then
+on request /proxied redirect is returned to URL with slash added - /proxied/.
+
+
+
+
+
+не возвращалась ошибка, если не удавалось создать временный файл
+для хранения тела запроса POST.
+
+
+error was not returned if POST request body temporary file creation was failed.
+
+
+
+
+
+
+
+
+
+
+директива AccelReverse.
+
+
+AccelReverse directive was added.
+
+
+
+
+
+
+
+
+
+
+на Solaris 7 и FreeBSD 2.x большие ответы передавались не до конца.
+
+
+big repsonses was truncated on Solaris 7 and FreeBSD 2.x.
+
+
+
+
+
+
+
+
+
+
+скорректированы некоторые сообщения об ошибках.
+
+
+some error messages was corrected.
+
+
+
+
+
+если клиент в запросе POST обрывал соединение,
+то бэкенду передавалось неполное тело запроса.
+Теперь mod_accel в такой ситуации не соединяется с бэкендом.
+
+
+if client aborted connection while POST
+then backend received incompleted request body.
+Now mod_accel doesn't connect to backend in this situation.
+
+
+
+
+
+mod_accel не собирался без библиотеки mm.
+
+
+mod_accel did not build without mm library.
+
+
+
+
+
+
+
+
+
+
+в сообщения об ошибках добавлен URL, который передаётся бэкенду.
+
+
+backend URL was added in error messages.
+
+
+
+
+
+третий параметр в директиве AccelBusyLock.
+
+
+third parameter was added in AccelBusyLock directory.
+
+
+
+
+
+порядок загрузки модулей mod_accel, mod_randban, mod_quoted
+и mod_ssl не важен.
+
+
+load order of mod_accel, mod_randban, mod_quoted and mod_ssl
+has no meaning now.
+
+
+
+
+
+добавлен параметр --with-patch в configure.
+Упразднены параметры --without-mod_charset и --without-mod_ssl.
+
+
+--with-patch directive was added in configure.
+--without-mod_charset and --without-mod_ssl directives is removed.
+
+
+
+
+
+улучшение портабильности.
+
+
+portability enhancement.
+
+
+
+
+
+
+
+
+
+
+во флаге MP директивы AccelPass можно указывать тэг.
+
+
+MP flag of AccelPass directive can have tag.
+
+
+
+
+
+при использовании проксирования (флаг P) в директиве
+RewriteRule модуля mod_rewrite можно использовать флаг MP.
+
+
+MP flag can be used in mod_rewrite module RewriteRule
+directive when proxing is specified (P flag).
+
+
+
+
+
+при указании времени кэширования с помощью директив
+AccelDefaultExpire или AccelLastModifiedFactor ответ не сохранялся
+в кэш, если разница во времени между фронтендом и бэкендом была
+больше время кэширования.
+
+
+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.
+
+
+
+
+
+
+
+
+
+
+директива AccelIgnoreAuth.
+
+
+AccelIgnoreAuth directive was added.
+
+
+
+
+
+при использовании проксирования (флаг P) в директиве
+RewriteRule модуля mod_rewrite модуль mod_proxy дублировал
+строку аргументов.
+
+
+mod_proxy module duplicated argument string when proxing
+is specified in mod_rewrite module RewriteRule directive (P flag).
+
+
+
+
+
+
+
+
+
+
+если бэкендов несколько и с одним из них соединение
+не было установлено, то информация об этой попытке в заметки
+%{accel*}x не добавлялась.
+
+
+if there are several backends and connection with one of them
+was not established then %{accel*}x notes did not contain state of it.
+
+
+
+
+
+при получении от бэкенда большого заголовка происходил
+segmentation fault.
+
+
+backend big header caused segmentation fault.
+
+
+
+
+
+в accel-cachemgr добавлены два состояния - invalid
+и no_accelerated.
+
+
+two status codes - invalid and no_accelerated was added
+in accel-cachemgr.
+
+
+
+
+
+директива RewriteRule модуля mod_rewrite с флагом [P]
+работала только при использовании в SSI.
+
+
+mod_rewrite module RewriteRule directive with flag [P]
+worked in SSI enviroment only.
+
+
+
+
+
+
+
+
+
+
+Изменения в директиве AccelCacheCookie:
+Добавлены параметр "all", запрещающие параметры и регулярные выражения.
+В одной директиве может быть указано несколько параметров.
+Директивы из вложенных блоков не объединяются.
+Имена cookie сортируются в алфавитном порядке.
+
+
+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.
+
+
+
+
+
+Изменения в директиве AccelNoPass:
+Регулярное выражение может быть нечуствительно к регистру.
+Между символом "~" и регулярным выражением не должно быть пробела.
+В одной директиве может быть указано несколько параметров.
+
+
+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.
+
+
+
+
+
+
+
+
+
+
+директива AccelCacheCookie.
+
+
+AccelCacheCookie directive was added.
+
+
+
+
+
+заметка accel_nocache.
+
+
+accel_nocache note was added.
+
+
+
+
+
+обработчик accel-cachemgr.
+
+
+accel-cachemgr handler was added.
+
+
+
+
+
+при запросе нескольких невозрастающих byteranges мог
+выдаваться неверный ответ.
+
+
+answer may be wrong if request contains several non-growing
+byteranges.
+
+
+
+
+
+заметка %{accel_r}x не записывалась в лог.
+
+
+%{accel_r}x note was not logged.
+
+
+
+
+
+если ответ некэшируемый, то при преждевременном обрыве
+соединения с клиентом соединение с бэкендом не закрывалось сразу.
+
+
+if response is not cachable and client prematurely closes
+connection then connection to backend was not closed at once.
+
+
+
+
+
+
+
+
+
+
+ошибка в accel_read_and_check_writable() вызывала нагрузку на процессор.
+
+
+bug in accel_read_and_check_writable() caused high CPU usage.
+
+
+
+
+
+
+
+
+
+
+Первая версия.
+Тестировалась на Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 на
+FreeBSD 3.4, 4.2.
+
+
+First release.
+Tested with Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 on FreeBSD 3.4, 4.2.
+
+
+
+
+
+
diff --git a/docs/xsls/changes.xsls b/docs/xsls/changes.xsls
new file mode 100644
index 000000000..000461692
--- /dev/null
+++ b/docs/xsls/changes.xsls
@@ -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 = {<br>}
+
+
+X:template = "/" { !! "change_log"; }
+X:template = "change_log" { !! "changes"; }
+
+
+X:template = "changes" {
+ X:text {
}
+
+ !{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 {
}
+
+ !! "change";
+
+ X:text {
}
+}
+
+
+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 {
}
+
+ !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), ' ', ' ')}
+
+ X:text {
}
+
+ !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 <= $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(., ' ', ' ')} }
+
+
+}
diff --git a/docs/xsls/dump.xsls b/docs/xsls/dump.xsls
new file mode 100644
index 000000000..6b39966a0
--- /dev/null
+++ b/docs/xsls/dump.xsls
@@ -0,0 +1,29 @@
+X:stylesheet {
+
+X:output method="xml"
+X:param indent-increment="' '";
+
+X:template noname(indent="'
'") = "*" {
+ !{$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;
+}
+
+
+
+}
diff --git a/docs/xslt/changes.xslt b/docs/xslt/changes.xslt
new file mode 100644
index 000000000..8b1cd0a8b
--- /dev/null
+++ b/docs/xslt/changes.xslt
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ <br>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c
index db72c6e22..4946e153f 100644
--- a/src/os/unix/ngx_linux_init.c
+++ b/src/os/unix/ngx_linux_init.c
@@ -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");