tree 25362ec56c889a2284e6feb341d5b87f13b5beab
parent 9cdd8a1cbcf70527db51eeab707a5bc05babdcf3
author Igor Sysoev <igor@sysoev.ru> 1156934357 +0000
committer Igor Sysoev <igor@sysoev.ru> 1156934357 +0000

nginx-0.4.0-RELEASE import

    *) Change in internal API: the HTTP modules initialization was moved
       from the init module phase to the HTTP postconfiguration phase.

    *) Change: now the request body is not read beforehand for the
       ngx_http_perl_module: it's required to start the reading using the
       $r->has_request_body method.

    *) Feature: the ngx_http_perl_module supports the DECLINED return code.

    *) Feature: the ngx_http_dav_module supports the incoming "Date" header
       line for the PUT method.

    *) Feature: the "ssi" directive is available inside the "if" block.

    *) Bugfix: a segmentation fault occurred if there was an "index"
       directive with variables and the first index name was without
       variables; the bug had appeared in 0.1.29.
