From 2bab27f55b4766eadef25eb7b526ab463620b96d Mon Sep 17 00:00:00 2001
From: "(no author)" <(no author)@unknown>
Date: Fri, 4 May 2001 21:54:26 +0000
Subject: [PATCH] This commit was manufactured by cvs2svn to create branch
'avendor'.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/avendor@88990 13f79535-47bb-0310-9956-ffa450edef68
---
.cvsignore | 8 +
ABOUT_APACHE | 266 +
CHANGES | 8722 +++++++++++++++++
INSTALL | 449 +
README | 72 +
build/bsd_makefile | 71 +
build/buildinfo.sh | 160 +
build/default.pl | 496 +
build/httpd_roll_release | 115 +
build/sysv_makefile | 71 +
config.layout | 251 +
docs/STATUS | 76 +
docs/conf/highperformance-std.conf | 63 +
docs/docroot/apache_pb2.gif | Bin 0 -> 2414 bytes
docs/docroot/apache_pb2_ani.gif | Bin 0 -> 2160 bytes
docs/docroot/index.html.el | 37 +
docs/doxygen.conf | 13 +
docs/icons/apache_pb2.gif | Bin 0 -> 2414 bytes
docs/icons/apache_pb2_ani.gif | Bin 0 -> 2160 bytes
docs/manual/configuring.html | 169 +
docs/manual/configuring.html.en | 169 +
docs/manual/configuring.html.ja.jis | 247 +
docs/manual/developer/debugging.html | 175 +
docs/manual/filter.html | 61 +
docs/manual/filter.html.en | 61 +
docs/manual/handler.html.ja.jis | 146 +
docs/manual/howto/cgi.html | 499 +
docs/manual/howto/cgi.html.en | 499 +
docs/manual/howto/cgi.html.ja.jis | 495 +
docs/manual/howto/ssi.html | 519 +
docs/manual/howto/ssi.html.en | 519 +
docs/manual/howto/ssi.html.ja.jis | 501 +
docs/manual/images/apache_header.gif | Bin 0 -> 4084 bytes
docs/manual/images/pixel.gif | Bin 0 -> 61 bytes
docs/manual/index.html.ja.jis | 179 +
docs/manual/mod/mod_charset_lite.html | 227 +
docs/manual/mod/mod_dav.html | 272 +
docs/manual/mod/mod_ext_filter.html | 286 +
docs/manual/mod/mod_file_cache.html | 267 +
docs/manual/mod/module-dict.html | 135 +
docs/manual/mod/module-dict.html.en | 135 +
docs/manual/mod/mpm_common.html | 409 +
docs/manual/mod/mpm_winnt.html | 59 +
docs/manual/mod/perchild.html | 123 +
docs/manual/mod/prefork.html | 130 +
docs/manual/new_features_2_0.html.fr | 88 +
docs/manual/programs/ab.html | 121 +
docs/manual/programs/apachectl.html | 82 +
docs/manual/programs/apxs.html | 269 +
docs/manual/programs/dbmmanage.html | 103 +
docs/manual/programs/htdigest.html | 50 +
docs/manual/programs/htpasswd.html | 158 +
docs/manual/programs/httpd.html | 117 +
docs/manual/programs/index.html | 60 +
docs/manual/programs/logresolve.html | 38 +
docs/manual/programs/other.html | 48 +
docs/manual/programs/rotatelogs.html | 42 +
docs/manual/programs/suexec.html | 29 +
docs/manual/server-wide.html | 215 +
docs/manual/server-wide.html.en | 215 +
docs/manual/server-wide.html.ja.jis | 113 +
docs/manual/upgrading.html | 94 +
docs/manual/upgrading.html.en | 94 +
docs/manual/upgrading.html.fr | 131 +
docs/manual/urlmapping.html | 253 +
docs/manual/urlmapping.html.en | 253 +
include/ap_compat.h | 11 +
include/ap_release.h | 74 +
include/mpm_common.h | 84 +
include/scoreboard.h | 242 +
include/util_charset.h | 109 +
include/util_ebcdic.h | 81 +
include/util_filter.h | 220 +
include/util_xml.h | 220 +
libhttpd.dsp | 100 +
modules/cache/.cvsignore | 10 +
modules/cache/Makefile.in | 3 +
modules/cache/config.m4 | 17 +
modules/config5.m4 | 43 +
modules/dav/fs/.cvsignore | 10 +
modules/dav/fs/Makefile.in | 5 +
modules/dav/fs/config6.m4 | 11 +
modules/dav/fs/dbm.c | 315 +
modules/dav/fs/lock.c | 1486 +++
modules/dav/fs/mod_dav_fs.c | 137 +
modules/dav/fs/mod_dav_fs.dsp | 120 +
modules/dav/fs/repos.c | 2007 ++++
modules/dav/fs/repos.h | 75 +
modules/dav/main/.cvsignore | 10 +
modules/dav/main/Makefile.in | 6 +
modules/dav/main/config5.m4 | 22 +
modules/dav/main/liveprop.c | 122 +
modules/dav/main/mod_dav.c | 3313 +++++++
modules/dav/main/mod_dav.dsp | 128 +
modules/dav/main/mod_dav.h | 1809 ++++
modules/dav/main/props.c | 1525 +++
modules/dav/main/providers.c | 90 +
modules/dav/main/std_liveprop.c | 289 +
modules/dav/main/util.c | 2087 ++++
modules/dav/main/util_lock.c | 764 ++
modules/echo/.cvsignore | 10 +
modules/echo/Makefile.in | 3 +
modules/echo/config.m4 | 18 +
modules/experimental/Makefile.in | 3 +
modules/experimental/config.m4 | 7 +
modules/experimental/mod_cache.c | 130 +
modules/experimental/mod_cache.h | 67 +
modules/experimental/mod_case_filter.c | 113 +
modules/experimental/mod_charset_lite.c | 296 +
modules/experimental/mod_disk_cache.c | 171 +
modules/filters/.cvsignore | 10 +
modules/filters/Makefile.in | 3 +
modules/filters/config.m4 | 18 +
modules/filters/mod_include.h | 206 +
modules/generators/.cvsignore | 10 +
modules/generators/Makefile.in | 3 +
modules/generators/config5.m4 | 28 +
modules/generators/mod_suexec.c | 160 +
modules/generators/mod_suexec.h | 64 +
modules/http/.cvsignore | 10 +
modules/http/Makefile.in | 3 +
modules/http/config2.m4 | 10 +
modules/http/mod_core.h | 92 +
modules/loggers/.cvsignore | 10 +
modules/loggers/Makefile.in | 3 +
modules/loggers/config.m4 | 10 +
modules/loggers/mod_log_config.h | 75 +
modules/mappers/.cvsignore | 10 +
modules/mappers/Makefile.in | 3 +
modules/mappers/config9.m4 | 33 +
modules/metadata/.cvsignore | 10 +
modules/metadata/Makefile.in | 3 +
modules/metadata/config.m4 | 30 +
modules/proxy/Makefile.in | 5 +
modules/proxy/config.m4 | 32 +
modules/ssl/.cvsignore | 10 +
modules/ssl/README | 163 +
modules/ssl/README.dsov.fig | 346 +
modules/ssl/README.dsov.ps | 1138 +++
modules/ssl/mod_ssl.c | 248 +
modules/ssl/mod_ssl.h | 854 ++
modules/ssl/ssl_engine_config.c | 1093 +++
modules/ssl/ssl_engine_dh.c | 255 +
modules/ssl/ssl_engine_init.c | 1090 ++
modules/ssl/ssl_engine_io.c | 728 ++
modules/ssl/ssl_engine_kernel.c | 1905 ++++
modules/ssl/ssl_engine_log.c | 326 +
modules/ssl/ssl_engine_mutex.c | 397 +
modules/ssl/ssl_engine_pphrase.c | 545 +
modules/ssl/ssl_engine_rand.c | 215 +
modules/ssl/ssl_engine_vars.c | 615 ++
modules/ssl/ssl_expr.c | 119 +
modules/ssl/ssl_expr.h | 139 +
modules/ssl/ssl_expr_eval.c | 282 +
modules/ssl/ssl_expr_parse.c | 605 ++
modules/ssl/ssl_expr_parse.h | 29 +
modules/ssl/ssl_expr_parse.y | 186 +
modules/ssl/ssl_expr_scan.c | 2002 ++++
modules/ssl/ssl_expr_scan.l | 261 +
modules/ssl/ssl_scache.c | 204 +
modules/ssl/ssl_scache_dbm.c | 440 +
modules/ssl/ssl_scache_shmcb.c | 1343 +++
modules/ssl/ssl_util.c | 437 +
modules/ssl/ssl_util_ssl.c | 544 +
modules/ssl/ssl_util_ssl.h | 115 +
modules/test/mod_optional_fn_export.c | 86 +
modules/test/mod_optional_fn_export.h | 3 +
modules/test/mod_optional_fn_import.c | 93 +
os/beos/.cvsignore | 5 +
os/os2/core.mk | 7 +
os/os2/core_header.def | 11 +
os/tpf/.cvsignore | 2 +
server/core.c | 3267 ++++++
server/error_bucket.c | 104 +
server/mpm/beos/.cvsignore | 5 +
server/mpm/beos/Makefile.in | 5 +
server/mpm/beos/beos.c | 1134 +++
server/mpm/beos/beos.h | 69 +
server/mpm/beos/config5.m4 | 7 +
server/mpm/beos/mpm.h | 79 +
server/mpm/beos/mpm_default.h | 143 +
server/mpm/experimental/perchild/.cvsignore | 5 +
server/mpm/experimental/perchild/Makefile.in | 5 +
server/mpm/experimental/perchild/config5.m4 | 6 +
server/mpm/experimental/perchild/mpm.h | 83 +
.../mpm/experimental/perchild/mpm_default.h | 144 +
server/mpm/experimental/perchild/perchild.c | 1430 +++
server/mpm/monitoring-services.txt | 94 +
server/mpm/prefork/mpm.h | 72 +
server/mpm/winnt/Win9xConHook.c | 517 +
server/mpm/winnt/Win9xConHook.def | 9 +
server/mpm/winnt/Win9xConHook.dsp | 103 +
server/mpm/winnt/Win9xConHook.h | 24 +
server/mpm/winnt/mpm.h | 63 +
server/mpm_common.c | 170 +
server/protocol.c | 1594 +++
server/request.c | 1124 +++
server/scoreboard.c | 283 +
server/util_charset.c | 122 +
server/util_debug.c | 78 +
server/util_ebcdic.c | 103 +
server/util_filter.c | 146 +
server/util_xml.c | 421 +
srclib/pcre/.cvsignore | 14 +
srclib/pcre/config.hw | 28 +
srclib/pcre/dftables.dsp | 160 +
srclib/pcre/pcre.dsp | 193 +
srclib/pcre/pcre.hw | 105 +
srclib/pcre/pcreposix.dsp | 152 +
support/apachectl.in | 234 +
support/dbmmanage.in | 350 +
support/log_server_status.in | 114 +
support/logresolve.pl.in | 261 +
support/phf_abuse_log.cgi.in | 22 +
support/split-logfile.in | 98 +
test/Makefile.in | 15 +
216 files changed, 66925 insertions(+)
create mode 100644 .cvsignore
create mode 100644 ABOUT_APACHE
create mode 100644 CHANGES
create mode 100644 INSTALL
create mode 100644 README
create mode 100755 build/bsd_makefile
create mode 100755 build/buildinfo.sh
create mode 100644 build/default.pl
create mode 100755 build/httpd_roll_release
create mode 100755 build/sysv_makefile
create mode 100644 config.layout
create mode 100644 docs/STATUS
create mode 100755 docs/conf/highperformance-std.conf
create mode 100644 docs/docroot/apache_pb2.gif
create mode 100644 docs/docroot/apache_pb2_ani.gif
create mode 100644 docs/docroot/index.html.el
create mode 100644 docs/doxygen.conf
create mode 100644 docs/icons/apache_pb2.gif
create mode 100644 docs/icons/apache_pb2_ani.gif
create mode 100644 docs/manual/configuring.html
create mode 100644 docs/manual/configuring.html.en
create mode 100644 docs/manual/configuring.html.ja.jis
create mode 100644 docs/manual/developer/debugging.html
create mode 100644 docs/manual/filter.html
create mode 100644 docs/manual/filter.html.en
create mode 100644 docs/manual/handler.html.ja.jis
create mode 100644 docs/manual/howto/cgi.html
create mode 100644 docs/manual/howto/cgi.html.en
create mode 100644 docs/manual/howto/cgi.html.ja.jis
create mode 100644 docs/manual/howto/ssi.html
create mode 100644 docs/manual/howto/ssi.html.en
create mode 100644 docs/manual/howto/ssi.html.ja.jis
create mode 100644 docs/manual/images/apache_header.gif
create mode 100644 docs/manual/images/pixel.gif
create mode 100644 docs/manual/index.html.ja.jis
create mode 100644 docs/manual/mod/mod_charset_lite.html
create mode 100644 docs/manual/mod/mod_dav.html
create mode 100644 docs/manual/mod/mod_ext_filter.html
create mode 100644 docs/manual/mod/mod_file_cache.html
create mode 100644 docs/manual/mod/module-dict.html
create mode 100644 docs/manual/mod/module-dict.html.en
create mode 100644 docs/manual/mod/mpm_common.html
create mode 100644 docs/manual/mod/mpm_winnt.html
create mode 100644 docs/manual/mod/perchild.html
create mode 100644 docs/manual/mod/prefork.html
create mode 100644 docs/manual/new_features_2_0.html.fr
create mode 100644 docs/manual/programs/ab.html
create mode 100644 docs/manual/programs/apachectl.html
create mode 100644 docs/manual/programs/apxs.html
create mode 100644 docs/manual/programs/dbmmanage.html
create mode 100644 docs/manual/programs/htdigest.html
create mode 100644 docs/manual/programs/htpasswd.html
create mode 100644 docs/manual/programs/httpd.html
create mode 100755 docs/manual/programs/index.html
create mode 100644 docs/manual/programs/logresolve.html
create mode 100755 docs/manual/programs/other.html
create mode 100644 docs/manual/programs/rotatelogs.html
create mode 100644 docs/manual/programs/suexec.html
create mode 100644 docs/manual/server-wide.html
create mode 100644 docs/manual/server-wide.html.en
create mode 100644 docs/manual/server-wide.html.ja.jis
create mode 100644 docs/manual/upgrading.html
create mode 100644 docs/manual/upgrading.html.en
create mode 100644 docs/manual/upgrading.html.fr
create mode 100755 docs/manual/urlmapping.html
create mode 100755 docs/manual/urlmapping.html.en
create mode 100644 include/ap_compat.h
create mode 100644 include/ap_release.h
create mode 100644 include/mpm_common.h
create mode 100644 include/scoreboard.h
create mode 100644 include/util_charset.h
create mode 100644 include/util_ebcdic.h
create mode 100644 include/util_filter.h
create mode 100644 include/util_xml.h
create mode 100644 libhttpd.dsp
create mode 100644 modules/cache/.cvsignore
create mode 100644 modules/cache/Makefile.in
create mode 100644 modules/cache/config.m4
create mode 100644 modules/config5.m4
create mode 100644 modules/dav/fs/.cvsignore
create mode 100644 modules/dav/fs/Makefile.in
create mode 100644 modules/dav/fs/config6.m4
create mode 100644 modules/dav/fs/dbm.c
create mode 100644 modules/dav/fs/lock.c
create mode 100644 modules/dav/fs/mod_dav_fs.c
create mode 100644 modules/dav/fs/mod_dav_fs.dsp
create mode 100644 modules/dav/fs/repos.c
create mode 100644 modules/dav/fs/repos.h
create mode 100644 modules/dav/main/.cvsignore
create mode 100644 modules/dav/main/Makefile.in
create mode 100644 modules/dav/main/config5.m4
create mode 100644 modules/dav/main/liveprop.c
create mode 100644 modules/dav/main/mod_dav.c
create mode 100644 modules/dav/main/mod_dav.dsp
create mode 100644 modules/dav/main/mod_dav.h
create mode 100644 modules/dav/main/props.c
create mode 100644 modules/dav/main/providers.c
create mode 100644 modules/dav/main/std_liveprop.c
create mode 100644 modules/dav/main/util.c
create mode 100644 modules/dav/main/util_lock.c
create mode 100644 modules/echo/.cvsignore
create mode 100644 modules/echo/Makefile.in
create mode 100644 modules/echo/config.m4
create mode 100644 modules/experimental/Makefile.in
create mode 100644 modules/experimental/config.m4
create mode 100644 modules/experimental/mod_cache.c
create mode 100644 modules/experimental/mod_cache.h
create mode 100644 modules/experimental/mod_case_filter.c
create mode 100644 modules/experimental/mod_charset_lite.c
create mode 100644 modules/experimental/mod_disk_cache.c
create mode 100644 modules/filters/.cvsignore
create mode 100644 modules/filters/Makefile.in
create mode 100644 modules/filters/config.m4
create mode 100644 modules/filters/mod_include.h
create mode 100644 modules/generators/.cvsignore
create mode 100644 modules/generators/Makefile.in
create mode 100644 modules/generators/config5.m4
create mode 100644 modules/generators/mod_suexec.c
create mode 100644 modules/generators/mod_suexec.h
create mode 100644 modules/http/.cvsignore
create mode 100644 modules/http/Makefile.in
create mode 100644 modules/http/config2.m4
create mode 100644 modules/http/mod_core.h
create mode 100644 modules/loggers/.cvsignore
create mode 100644 modules/loggers/Makefile.in
create mode 100644 modules/loggers/config.m4
create mode 100644 modules/loggers/mod_log_config.h
create mode 100644 modules/mappers/.cvsignore
create mode 100644 modules/mappers/Makefile.in
create mode 100644 modules/mappers/config9.m4
create mode 100644 modules/metadata/.cvsignore
create mode 100644 modules/metadata/Makefile.in
create mode 100644 modules/metadata/config.m4
create mode 100644 modules/proxy/Makefile.in
create mode 100644 modules/proxy/config.m4
create mode 100644 modules/ssl/.cvsignore
create mode 100644 modules/ssl/README
create mode 100644 modules/ssl/README.dsov.fig
create mode 100644 modules/ssl/README.dsov.ps
create mode 100644 modules/ssl/mod_ssl.c
create mode 100644 modules/ssl/mod_ssl.h
create mode 100644 modules/ssl/ssl_engine_config.c
create mode 100644 modules/ssl/ssl_engine_dh.c
create mode 100644 modules/ssl/ssl_engine_init.c
create mode 100644 modules/ssl/ssl_engine_io.c
create mode 100644 modules/ssl/ssl_engine_kernel.c
create mode 100644 modules/ssl/ssl_engine_log.c
create mode 100644 modules/ssl/ssl_engine_mutex.c
create mode 100644 modules/ssl/ssl_engine_pphrase.c
create mode 100644 modules/ssl/ssl_engine_rand.c
create mode 100644 modules/ssl/ssl_engine_vars.c
create mode 100644 modules/ssl/ssl_expr.c
create mode 100644 modules/ssl/ssl_expr.h
create mode 100644 modules/ssl/ssl_expr_eval.c
create mode 100644 modules/ssl/ssl_expr_parse.c
create mode 100644 modules/ssl/ssl_expr_parse.h
create mode 100644 modules/ssl/ssl_expr_parse.y
create mode 100644 modules/ssl/ssl_expr_scan.c
create mode 100644 modules/ssl/ssl_expr_scan.l
create mode 100644 modules/ssl/ssl_scache.c
create mode 100644 modules/ssl/ssl_scache_dbm.c
create mode 100644 modules/ssl/ssl_scache_shmcb.c
create mode 100644 modules/ssl/ssl_util.c
create mode 100644 modules/ssl/ssl_util_ssl.c
create mode 100644 modules/ssl/ssl_util_ssl.h
create mode 100644 modules/test/mod_optional_fn_export.c
create mode 100644 modules/test/mod_optional_fn_export.h
create mode 100644 modules/test/mod_optional_fn_import.c
create mode 100644 os/beos/.cvsignore
create mode 100644 os/os2/core.mk
create mode 100644 os/os2/core_header.def
create mode 100644 os/tpf/.cvsignore
create mode 100644 server/core.c
create mode 100644 server/error_bucket.c
create mode 100644 server/mpm/beos/.cvsignore
create mode 100644 server/mpm/beos/Makefile.in
create mode 100644 server/mpm/beos/beos.c
create mode 100644 server/mpm/beos/beos.h
create mode 100644 server/mpm/beos/config5.m4
create mode 100644 server/mpm/beos/mpm.h
create mode 100644 server/mpm/beos/mpm_default.h
create mode 100644 server/mpm/experimental/perchild/.cvsignore
create mode 100644 server/mpm/experimental/perchild/Makefile.in
create mode 100644 server/mpm/experimental/perchild/config5.m4
create mode 100644 server/mpm/experimental/perchild/mpm.h
create mode 100644 server/mpm/experimental/perchild/mpm_default.h
create mode 100644 server/mpm/experimental/perchild/perchild.c
create mode 100644 server/mpm/monitoring-services.txt
create mode 100644 server/mpm/prefork/mpm.h
create mode 100644 server/mpm/winnt/Win9xConHook.c
create mode 100644 server/mpm/winnt/Win9xConHook.def
create mode 100644 server/mpm/winnt/Win9xConHook.dsp
create mode 100644 server/mpm/winnt/Win9xConHook.h
create mode 100644 server/mpm/winnt/mpm.h
create mode 100644 server/mpm_common.c
create mode 100644 server/protocol.c
create mode 100644 server/request.c
create mode 100644 server/scoreboard.c
create mode 100644 server/util_charset.c
create mode 100644 server/util_debug.c
create mode 100644 server/util_ebcdic.c
create mode 100644 server/util_filter.c
create mode 100644 server/util_xml.c
create mode 100644 srclib/pcre/.cvsignore
create mode 100644 srclib/pcre/config.hw
create mode 100644 srclib/pcre/dftables.dsp
create mode 100644 srclib/pcre/pcre.dsp
create mode 100644 srclib/pcre/pcre.hw
create mode 100644 srclib/pcre/pcreposix.dsp
create mode 100644 support/apachectl.in
create mode 100644 support/dbmmanage.in
create mode 100644 support/log_server_status.in
create mode 100644 support/logresolve.pl.in
create mode 100644 support/phf_abuse_log.cgi.in
create mode 100644 support/split-logfile.in
create mode 100644 test/Makefile.in
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 00000000000..1e493134b1d
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,8 @@
+configure
+missing
+install-sh
+mkinstalldirs
+aclocal.m4
+.deps
+generated_lists
+buildmk.stamp
diff --git a/ABOUT_APACHE b/ABOUT_APACHE
new file mode 100644
index 00000000000..696a87bd546
--- /dev/null
+++ b/ABOUT_APACHE
@@ -0,0 +1,266 @@
+
+ The Apache HTTP Server Project
+
+ http://www.apache.org/httpd
+
+ July 2000
+
+The Apache Project is a collaborative software development effort aimed
+at creating a robust, commercial-grade, featureful, and freely-available
+source code implementation of an HTTP (Web) server. The project is
+jointly managed by a group of volunteers located around the world, using
+the Internet and the Web to communicate, plan, and develop the server and
+its related documentation. These volunteers are known as the Apache Group.
+In addition, hundreds of users have contributed ideas, code, and
+documentation to the project. This file is intended to briefly describe
+the history of the Apache Group, recognize the many contributors, and
+explain how you can join the fun too.
+
+In February of 1995, the most popular server software on the Web was the
+public domain HTTP daemon developed by Rob McCool at the National Center
+for Supercomputing Applications, University of Illinois, Urbana-Champaign.
+However, development of that httpd had stalled after Rob left NCSA in
+mid-1994, and many webmasters had developed their own extensions and bug
+fixes that were in need of a common distribution. A small group of these
+webmasters, contacted via private e-mail, gathered together for the purpose
+of coordinating their changes (in the form of "patches"). Brian Behlendorf
+and Cliff Skolnick put together a mailing list, shared information space,
+and logins for the core developers on a machine in the California Bay Area,
+with bandwidth and diskspace donated by HotWired and Organic Online.
+By the end of February, eight core contributors formed the foundation
+of the original Apache Group:
+
+ Brian Behlendorf Roy T. Fielding Rob Hartill
+ David Robinson Cliff Skolnick Randy Terbush
+ Robert S. Thau Andrew Wilson
+
+with additional contributions from
+
+ Eric Hagberg Frank Peters Nicolas Pioch
+
+Using NCSA httpd 1.3 as a base, we added all of the published bug fixes
+and worthwhile enhancements we could find, tested the result on our own
+servers, and made the first official public release (0.6.2) of the Apache
+server in April 1995. By coincidence, NCSA restarted their own development
+during the same period, and Brandon Long and Beth Frank of the NCSA Server
+Development Team joined the list in March as honorary members so that the
+two projects could share ideas and fixes.
+
+The early Apache server was a big hit, but we all knew that the codebase
+needed a general overhaul and redesign. During May-June 1995, while
+Rob Hartill and the rest of the group focused on implementing new features
+for 0.7.x (like pre-forked child processes) and supporting the rapidly growing
+Apache user community, Robert Thau designed a new server architecture
+(code-named Shambhala) which included a modular structure and API for better
+extensibility, pool-based memory allocation, and an adaptive pre-forking
+process model. The group switched to this new server base in July and added
+the features from 0.7.x, resulting in Apache 0.8.8 (and its brethren)
+in August.
+
+After extensive beta testing, many ports to obscure platforms, a new set
+of documentation (by David Robinson), and the addition of many features
+in the form of our standard modules, Apache 1.0 was released on
+December 1, 1995.
+
+Less than a year after the group was formed, the Apache server passed
+NCSA's httpd as the #1 server on the Internet.
+
+The survey by Netcraft (http://www.netcraft.com/survey/) shows that Apache
+is today more widely used than all other web servers combined.
+
+ ============================================================================
+
+Current Apache Group in alphabetical order as of 27 July 2000:
+
+ Brian Behlendorf Collab.Net, California
+ Ryan Bloom Covalent Technologies, California
+ Ken Coar IBM Corporation, Research Triangle Park, NC, USA
+ Mark J. Cox Red Hat, England
+ Lars Eilebrecht CyberSolutions, Munich, Germany
+ Ralf S. Engelschall Munich, Germany.
+ Roy T. Fielding eBuilt, California
+ Tony Finch Covalent Technologies, California
+ Dean Gaudet Transmeta Corporation, California
+ Dirk-Willem van Gulik Covalent Technologies, California
+ Brian Havard Australia
+ Ben Hyde Gensym, Massachusetts
+ Jim Jagielski jaguNET Access Services, Maryland
+ Manoj Kasichainula Collab.Net, California
+ Alexei Kosut Stanford University, California
+ Martin Kraemer Munich, Germany
+ Ben Laurie Freelance Consultant, UK
+ Rasmus Lerdorf Linuxcare, California
+ Daniel Lopez Ridruejo Covalent Technologies, California
+ Doug MacEachern Covalent Technologies, California
+ Aram W. Mirzadeh CableVision, New York
+ Chuck Murcko The Topsail Group, Pennsylvania
+ Sameer Parekh California
+ David Reid UK
+ William A. Rowe, Jr. Freelance Consultant, Chicago area
+ Wilfredo Sanchez Apple Computer, California
+ Cliff Skolnick California
+ Marc Slemko Canada
+ Greg Stein California
+ Bill Stoddard IBM Corporation, Research Triangle Park, NC
+ Paul Sutton Seattle
+ Randy Terbush Covalent Technologies, California
+
+Apache Emeritus (old group members now off doing other things)
+
+ Rob Hartill Internet Movie DB, UK
+ David Robinson Cambridge University, UK
+ Robert S. Thau MIT, Massachusetts
+ Andrew Wilson Freelance Consultant, UK
+
+Other major contributors
+
+ Howard Fear (mod_include), Florent Guillaume (language negotiation),
+ Koen Holtman (rewrite of mod_negotiation),
+ Kevin Hughes (creator of all those nifty icons),
+ Brandon Long and Beth Frank (NCSA Server Development Team, post-1.3),
+ Ambarish Malpani (Beginning of the NT port),
+ Rob McCool (original author of the NCSA httpd 1.3),
+ Paul Richards (convinced the group to use remote CVS after 1.0),
+ Garey Smiley (OS/2 port), Henry Spencer (author of the regex library).
+
+Many 3rd-party modules, frequently used and recommended, are also
+freely-available and linked from the related projects page:
+, and their authors frequently
+contribute ideas, patches, and testing.
+
+Hundreds of people have made individual contributions to the Apache
+project. Patch contributors are listed in the src/CHANGES file.
+Frequent contributors have included Petr Lampa, Tom Tromey, James H.
+Cloos Jr., Ed Korthof, Nathan Neulinger, Jason S. Clary, Jason A. Dour,
+Michael Douglass, Tony Sanders, Brian Tao, Michael Smith, Adam Sussman,
+Nathan Schrenk, Matthew Gray, and John Heidemann.
+
+ ============================================================================
+
+How to become involved in the Apache project
+
+There are several levels of contributing. If you just want to send
+in an occasional suggestion/fix, then you can just use the bug reporting
+form at . You can also subscribe
+to the announcements mailing list (apache-announce@apache.org) which we
+use to broadcast information about new releases, bugfixes, and upcoming
+events. There's a lot of information about the development process (much
+of it in serious need of updating) to be found at .
+
+If you'd like to become an active contributor to the Apache project (the
+group of volunteers who vote on changes to the distributed server), then
+you need to start by subscribing to the new-httpd@apache.org mailing list.
+One warning though: traffic is high, 1000 to 1500 messages/month.
+To subscribe to the list, send "subscribe new-httpd" in the body of
+a message to . We recommend reading the list for
+a while before trying to jump in to development.
+
+ NOTE: The developer mailing list (new-httpd@apache.org) is not
+ a user support forum; it is for people actively working on development
+ of the server code and documentation, and for planning future
+ directions. If you have user/configuration questions, send them
+ to the USENET newsgroup "comp.infosystems.www.servers.unix".
+
+There is a core group of contributors (informally called the "core")
+which was formed from the project founders and is augmented from time
+to time when core members nominate outstanding contributors and the
+rest of the core members agree. The core group focus is more on
+"business" issues and limited-circulation things like security problems
+than on mainstream code development. The term "The Apache Group"
+technically refers to this core of project contributors.
+
+The Apache project is a meritocracy -- the more work you have done, the more
+you are allowed to do. The group founders set the original rules, but
+they can be changed by vote of the active members. There is a group
+of people who have logins on our server (apache.org) and access to the
+CVS repository. Everyone has access to the CVS snapshots. Changes to
+the code are proposed on the mailing list and usually voted on by active
+members -- three +1 (yes votes) and no -1 (no votes, or vetoes) are needed
+to commit a code change during a release cycle; docs are usually committed
+first and then changed as needed, with conflicts resolved by majority vote.
+
+Our primary method of communication is our mailing list. Approximately 40
+messages a day flow over the list, and are typically very conversational in
+tone. We discuss new features to add, bug fixes, user problems, developments
+in the web server community, release dates, etc. The actual code development
+takes place on the developers' local machines, with proposed changes
+communicated using a patch (output of a unified "diff -u oldfile newfile"
+command), and committed to the source repository by one of the core
+developers using remote CVS. Anyone on the mailing list can vote on a
+particular issue, but we only count those made by active members or people
+who are known to be experts on that part of the server. Vetoes must be
+accompanied by a convincing explanation.
+
+New members of the Apache Group are added when a frequent contributor is
+nominated by one member and unanimously approved by the voting members.
+In most cases, this "new" member has been actively contributing to the
+group's work for over six months, so it's usually an easy decision.
+
+The above describes our past and current (as of July 2000) guidelines,
+which will probably change over time as the membership of the group
+changes and our development/coordination tools improve.
+
+ ============================================================================
+
+The Apache Software Foundation (www.apache.org)
+
+The Apache Software Foundation exists to provide organizational, legal,
+and financial support for the Apache open-source software projects.
+Founded in June 1999 by the Apache Group, the Foundation has been
+incorporated as a membership-based, not-for-profit corporation in order
+to ensure that the Apache projects continue to exist beyond the participation
+of individual volunteers, to enable contributions of intellectual property
+and funds on a sound basis, and to provide a vehicle for limiting legal
+exposure while participating in open-source software projects.
+
+You are invited to participate in The Apache Software Foundation. We welcome
+contributions in many forms. Our membership consists of those individuals
+who have demonstrated a commitment to collaborative open-source software
+development through sustained participation and contributions within the
+Foundation's projects. Many people and companies have contributed towards
+the success of the Apache projects.
+
+ ============================================================================
+
+Why Apache Is Free
+
+Apache exists to provide a robust and commercial-grade reference
+implementation of the HTTP protocol. It must remain a platform upon which
+individuals and institutions can build reliable systems, both for
+experimental purposes and for mission-critical purposes. We believe the
+tools of online publishing should be in the hands of everyone, and
+software companies should make their money providing value-added services
+such as specialized modules and support, amongst other things. We realize
+that it is often seen as an economic advantage for one company to "own" a
+market - in the software industry that means to control tightly a
+particular conduit such that all others must pay. This is typically done
+by "owning" the protocols through which companies conduct business, at the
+expense of all those other companies. To the extent that the protocols of
+the World Wide Web remain "unowned" by a single company, the Web will
+remain a level playing field for companies large and small. Thus,
+"ownership" of the protocol must be prevented, and the existence of a
+robust reference implementation of the protocol, available absolutely for
+free to all companies, is a tremendously good thing.
+
+Furthermore, Apache is an organic entity; those who benefit from it
+by using it often contribute back to it by providing feature enhancements,
+bug fixes, and support for others in public newsgroups. The amount of
+effort expended by any particular individual is usually fairly light, but
+the resulting product is made very strong. This kind of community can
+only happen with freeware -- when someone pays for software, they usually
+aren't willing to fix its bugs. One can argue, then, that Apache's
+strength comes from the fact that it's free, and if it were made "not
+free" it would suffer tremendously, even if that money were spent on a
+real development team.
+
+We want to see Apache used very widely -- by large companies, small
+companies, research institutions, schools, individuals, in the intranet
+environment, everywhere -- even though this may mean that companies who
+could afford commercial software, and would pay for it without blinking,
+might get a "free ride" by using Apache. We would even be happy if some
+commercial software companies completely dropped their own HTTP server
+development plans and used Apache as a base, with the proper attributions
+as described in the LICENSE file.
+
+Thanks for using Apache!
+
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 00000000000..e27eab039b5
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,8722 @@
+Changes with Apache 2.0a9
+
+ *) Distribution directory structure reorganized to reflect a
+ normal source distribution with external install targets.
+ [Roy Fielding]
+
+ *) The MPMs that need multiple segments of shared memory now create
+ two apr_shmem_t variables, one for each shared memory allocation.
+ the problem is that we can't determine how much memory will be required
+ for shared memory allocations once we try to allocate more than one
+ variable. The MM code automatically aligns the shared memory allocations,
+ so we end up needing to pad the amount of shared memory we want based
+ on how many variables will be allocated out of the shared memory segment.
+ It is just easier to create a second apr_shmem_t variable, and two
+ shmem memory blocks.
+ [Ryan Bloom]
+
+ *) Cleanup the export list a bit. This creates a single unified list of
+ functions exported by APR. The export list is generated at configure
+ time, and that list is then used to generate the exports.c file.
+ Because of the way the export list is generated, we only export those
+ functions that are valid on the platform we are building on.
+ [Ryan Bloom]
+
+ *) Enable logging the cookie with mod_log_config
+ [Sander van Zoest ]
+
+ *) Fix a segfault in mod_info when it reaches the end of the configuration.
+ [Jeff Trawick]
+
+ *) Added lib/aputil/ as a placeholder for utility functions which are not
+ specific to the Apache HTTP Server (but do not make sense with APR).
+ The first utility is "apu_dbm": a set of functions to work with DBM
+ files. This first version can be compiled for SDBM or GDBM databases.
+ [Greg Stein]
+
+ *) Complete re-write of mod_include. This makes mod_include a filter that
+ uses buckets directly. This has now served the FAQ correctly.
+ [Paul Reder ]
+
+ *) Allow modules to specify the first filter in a sub_request when
+ making the sub_request. This keeps modules from having to change the
+ output_filter immediately after creating the sub-request, and therefore
+ skip the sub_req_output_filter. [Ryan Bloom]
+
+ *) Update ab to accept URLs with IPv6 literal address strings (in the
+ format described in RFC 2732), and to build Host header fields in
+ the same format. This allows IPv6 literal address strings to be
+ used with ab. This support has been tested against Apache 1.3 with
+ the KAME patch, but Apache 2.0 does not yet work with this format
+ of the Host header field. [Jeff Trawick]
+
+ *) Accomodate an out-of-space condition in the piped logs and the
+ rotatelogs.c code, and no longer churn log processes for this
+ condition. [Victor J. Orlikowski]
+
+ *) Add support for partial writes with apr_sendfile() to core_output_filter.
+ [Greg Ames]
+
+Changes with Apache 2.0a8
+
+ *) Add a directive to mod_mime so that filters can be associated with
+ a given mime-type.
+ [Ryan Bloom]
+
+ *) Get multi-views working again. We were setting the path_info
+ field incorrectly if we couldn't find the specified file.
+ [Ryan Bloom]
+
+ *) Fix 304 processing. The core should never try to send the headers
+ down the filter stack. Always, just setup the table in the request
+ record, and let the header filter convert it to data that is ready
+ for the network.
+ [Ryan Bloom]
+
+ *) More fixes for the proxy. There are still bugs in the proxy code,
+ but this has now proxied www.yahoo.com and www.ntrnet.net (my ISP)
+ successfully.
+ [Ryan Bloom]
+
+ *) Fix params for apr_getaddrinfo() call in connect proxy handler.
+ [Chuck Murcko]
+
+ *) APR: Add new apr_getopt_long function to handle long options.
+ [B. W. Fitzpatrick ]
+
+ *) APR: Change apr_connect() to take apr_sockaddr_t instead of hostname.
+ Add generic apr_create_socket(). Add apr_getaddrinfo() for doing
+ hostname resolution/address string parsing and building
+ apr_sockaddr_t. Add apr_get_sockaddr() for getting the address
+ of one of the apr_sockaddr_t structures for a socket. Change
+ apr_bind() to take apr_sockaddr_t. [David Reid and Jeff Trawick]
+
+ *) Remove the BUFF from the HTTP proxy. This is still a bit ugly, but
+ I have proxied pages with it, cleanup will commence soon.
+ [Ryan Bloom]
+
+ *) Make the proxy work with filters. This isn't perfect, because we
+ aren't dealing with the headers properly. [Ryan Bloom]
+
+ *) Do not send a content-length iff the C-L is 0 and this is a head
+ request. [Ryan Bloom]
+
+ *) Make cgi-bin work as a regular directory when using mod_vhost_alias
+ with no VirtualScriptAlias directives. PR#6829 [Tony Finch]
+
+ *) Remove BUFF from the PROXY connect handling. [Ryan Bloom]
+
+ *) Get the default_handler to stop trying to deal with HEAD requests.
+ The idea is to let the content-length filter compute the C-L before
+ we try to send the data. If we can get the C-L correctly, then we
+ should send it in the HEAD response.
+ [Ryan Bloom]
+
+ *) The Header filter can now determine if a body should be sent based
+ on r->header_only. The general idea of this is that if we delay
+ deciding to send the body, then we might be able to compute the
+ content-length correctly, which will help caching proxies to cache
+ our data better. Any handler that doesn't want to try to compute
+ the content-length can just send an EOS bucket without data and
+ everything will just work.
+ [Ryan Bloom]
+
+ *) Add the referer to the error log if one is available.
+ [Markus Gyger ]
+
+ *) Mod_info.c has now been ported to Apache 2.0. As a part of this
+ change, the root of the configuration tree has been exposed to modules
+ as ap_conftree.
+ [Ryan Morgan ]
+
+ *) Get the core_output_filter to use the bucket interface directly.
+ This keeps us from calling the content-length filter multiple times
+ for a simple static request.
+ [Ryan Bloom]
+
+ *) We are sending the content-type correctly now.
+ [Ryan Bloom and Will Rowe]
+
+ *) APR on FreeBSD: Fix a bug in apr_sendfile() which caused us to report
+ a bogus bytes-sent value when the only thing being sent was trailers
+ and writev() returned an error (or EAGAIN). [Jeff Trawick]
+
+ *) Get SINGLE_LISTEN_UNSERIALIZED_ACCEPT working again. This uses the
+ hints file to determine which platforms define
+ SINGLE_LISTEN_UNSERIALIZED_ACCEPT.
+ [Ryan Bloom]
+
+ *) APR: add apr_get_home_directory() [Jeff Trawick]
+
+ *) Initial import of 1.3-current mod_proxy. [Chuck Murcko]
+
+ *) Not all platforms have INADDR_NONE defined by default. Apache
+ used to make this check and define INADDR_NONE if appropriate,
+ but APR needs the check too, and I suspect other applications will
+ as well. APR now defines APR_INADDR_NONE, which is always a valid
+ value on all platforms.
+ [Branko Èibej ]
+
+ *) Destroy the pthread mutex in lock_intra_cleanup() for PR#6824.
+ [Shuichi Kitaguchi ]
+
+ *) Relax the syntax checking of Host: headers in order to support
+ iDNS. PR#6635 [Tony Finch]
+
+ *) When reading from file buckets we convert to an MMAP if it makes
+ sense. This also simplifies the default handler because the
+ default handler no longer needs to try to create MMAPs.
+ [Ryan Bloom]
+
+ *) BUFF has been removed from the main server. The BUFF code will remain
+ in the code until it has been purged from the proxy module as well.
+ [Ryan Bloom]
+
+ *) Byteranges have been completely re-written to be a filter. This
+ has been tested, and I believe it is working correctly, but it could
+ doesn't work for the Adobe Acrobat plug-in. The output almost matches
+ the output from 1.3, the only difference being that 1.3 includes
+ a content-length in the response, and this does not.
+ [Ryan Bloom]
+
+ *) APR read/write functions and bucket read functions now operate
+ on unsigned integers, instead of signed ones. It doesn't make
+ any sense to use signed ints, because we return the error codes,
+ so if we have an error we should report 0 bytes read or written.
+ [Ryan Bloom]
+
+ *) Always compute the content length, whether it is sent or not.
+ The reason for this, is that it allows us to correctly report
+ the bytes_sent when logging the request. This also simplifies
+ content-length filter a bit, and fixes the actual byte-reporing
+ code in mod_log_config.c
+ [Ryan Bloom]
+
+ *) Remove AP_END_OF_BRIGADE definition. This does not signify what
+ it says, because it was only used by EOS and FLUSH buckets. Since
+ neither of those are required at the end of a brigade, this was
+ really signifying FLUSH_THE_DATA, but that can be determined better
+ by checking AP_BUCKET_IS_EOS() or AP_BUCKET_IS_FLUSH. EOS and FLUSH
+ buckets now return a length of 0, which is actually the amount of data
+ read, so they make more sense.
+ [Ryan Bloom]
+
+ *) Allow the core_output_filter to save some data past the end of a
+ request. If we get an EOS bucket, we only send the data if it
+ makes sense to send it. This allows us to pipeline request
+ responses. As a part of this, we also need to allocate mmap
+ buckets out of the connection pool, not the request pool. This
+ allows the mmap to outlive the request.
+ [Ryan Bloom]
+
+ *) Make blocking and non-blocking bucket reads work correctly for
+ sockets and pipes. These are the only bucket types that should
+ have non-blocking reads, because the other bucket types should
+ ALWAYS be able to return something immediately.
+ [Ryan Bloom]
+
+ *) In the Apache/Win32 console window, accept Ctrl+C to stop the
+ server, but use Ctrl+Break to initiate a graceful restart
+ instead of duplicating behavior. [John Sterling]
+
+ *) Patch mod_autoindex to set the Last-Modified header based on
+ the directory's mtime, and add the ETag header. [William Rowe]
+
+ *) Merge the 1.3 patch to add support for logging query string in
+ such a way that "%m %U%q %H" is the same as "%r".
+ [Bill Stoddard]
+
+ *) Port three log methods from mod_log_config 1.3 to 2.0:
+ CLF compliant '-' byte count, method and protocol.
+ [Bill Stoddard]
+
+ *) Add a new LogFormat directive, %c, that will log connection
+ status at the end of the response as follows:
+ 'X' - connection aborted before the response completed.
+ '+' - connection may be kept-alive by the server.
+ '-' - connection will be closed by the server.
+ [Bill Stoddard]
+
+ *) Expand APR for WinNT to fully accept and return utf-8 encoded
+ Unicode file names and paths for Win32, and tag the Content-Type
+ from mod_autoindex to reflect that charset if the the feature
+ macro APR_HAS_UNICODE_FS is true. [William Rowe]
+
+ *) Compute the content length (and add appropriate header field) for
+ the response when no content length is available and we can't use
+ chunked encoding. [Jeff Trawick]
+
+ *) Changed ap_discard_request_body() to use REQUEST_CHUNKED_DECHUNK,
+ so that content input filters get dechunked data when using
+ the default handler. Also removed REQUEST_CHUNKED_PASS.
+ [Sascha Schumann]
+
+ *) Add mod_ext_filter as an experimental module. This module allows
+ the administrator to use external programs as filters. Currently,
+ only filtering of output is supported. [Jeff Trawick]
+
+ *) Most Apache functions work on EBCDIC machines again, as protocol
+ data is now translated (again). [Jeff Trawick]
+
+ *) Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
+ the EBCDIC support. They are noops on ASCII machines, so this
+ type of translation doesn't have to be surrounded by #ifdef
+ CHARSET_EBCDIC. [Jeff Trawick]
+
+ *) Fix mod_include. tag commands work again, and the server will
+ send the FAQ again. This also allows mod_include to set aside
+ buckets that include partial buckets.
+ [Ryan Bloom and David Reid]
+
+ *) Add suexec support back. [Manoj Kasichainula]
+
+ *) Lingering close now uses the socket directly instead of using
+ BUFF. This has been tested, but since all we can tell is that it
+ doesn't fail, this needs to be really hacked on.
+ [Ryan Bloom]
+
+ *) Allow filters to modify headers and have those headers be sent to
+ the client. The idea is that we have an http_header filter that
+ actually sends the headers to the network. This removes the need
+ for the BUFF to send headers.
+ [Ryan Bloom]
+
+ *) Charset translation: mod_charset_lite handles translation of
+ request bodies. Get rid of the xlate version of ap_md5_digest()
+ since we don't compute digests of filtered (e.g., translated)
+ response bodies this way anymore. (Note that we don't do it at
+ all at the present; somebody needs to write a filter to do so.)
+ [Jeff Trawick]
+
+ *) Input filters and ap_get_brigade() now have a input mode parameter
+ (blocking, non-blocking, peek) instead of a length parameter.
+ [hackathon]
+
+ *) Update the mime.types file to the registered media types as
+ of 2000-10-19. PR#6613 [Carsten Klapp ,
+ Tony Finch]
+
+ *) Namespace protect some macros declared in ap_config.h
+ [Ryan Bloom]
+
+ *) Support HTTP header line folding with input filtering.
+ [Greg Ames]
+
+ *) Mod_include works again. This should still be re-written, but at
+ least now we can serve an SHTML page again.
+ [Ryan Bloom]
+
+ *) Begin to remove BUFF from the core. Currently, we keep a pointer
+ to both the BUFF and the socket in the conn_rec. Functions that
+ want to use the BUFF can, functions that want to use the socket,
+ can. They point to the same place.
+ [Ryan Bloom]
+
+ *) apr_psprintf doesn't understand %lld as a format. Make it %ld.
+ [Tomas "Ögren" ]
+
+ *) APR pipes on Unix and Win32 are now cleaned up automatically when the
+ associated pool goes away. (APR pipes on OS/2 were already had this
+ logic.) This resolvs a fatal file descriptor leak with CGIs.
+ [Jeff Trawick]
+
+ *) The final line of the config file was not being read if there was
+ no \n at the end of it. This was caused by apr_fgets returning
+ APR_EOF even though we had read valid data. This is solved by
+ making cfg_getline check the buff that was returned from apr_fgets.
+ If apr_fgets return APR_EOF, but there was data in the buf, then we
+ return the buf, otherwise we return NULL.
+ [Ryan Bloom]
+
+ *) Piped logs work again in the 2.0 series.
+ [Ryan Bloom]
+
+ *) Restore functionality broken by the mod_rewrite security fix:
+ rewrite map lookup keys and default values are now expanded
+ so that the lookup can depend on the requested URI etc.
+ PR #6671 [Tony Finch]
+
+ *) Tighten up the syntax checking of Host: headers to fix a
+ security bug in some mass virtual hosting configurations
+ that can allow a remote attacker to retrieve some files
+ on the system that should be inaccessible. [Tony Finch]
+
+ *) Add a pool bucket type. This bucket is used for data allocated out
+ of a pool. If the pool is cleaned before the bucket is destroyed, then
+ the data is converted to a heap bucket, allowing it to survive the
+ death of the pool.
+ [Ryan Bloom]
+
+ *) Add a flush bucket. This allows modules to signal that the filters
+ should all flush whatever data they currently have. There is no way
+ to actually force them to do this, so if a filter ignores this bucket,
+ that's life, but at least we can try with this.
+ [Ryan Bloom]
+
+ *) Add an output filter for sub-requests. This filter just strips the
+ EOS bucket so that we don't confuse the main request's core output
+ filter by sending multiple EOS buckets. This change also makes sub
+ requests start to send EOS buckets when they are finished.
+ [Ryan Bloom]
+
+ *) Make ap_bucket_(read|destroy|split|setaside) into macros. Also
+ makes ap_bucket_destroy a return void, which is okay because it
+ used to always return APR_SUCCESS, and nobody ever checked its
+ return value anyway.
+ [Cliff Woolley ]
+
+ *) Remove the index into the bucket-type table from the buckets
+ structure. This has now been replaced with a pointer to the
+ bucket_type. Also add some macros to test the bucket-type.
+ [Ryan Bloom]
+
+ *) Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
+ for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
+ and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
+ All _VAR_ flavors changes to _DATA to be absolutely clear.
+ [William Rowe]
+
+ *) Add support for /, //, //servername and //server/sharename
+ parsing of blocks under Win32 and OS2.
+ [Tim Costello, William Rowe, Brian Harvard]
+
+ *) Remove the function pointers from the ap_bucket type. They have been
+ replaced with a global table. Modules are allowed to register bucket
+ types and use then use those buckets.
+ [Ryan Bloom]
+
+ *) mod_cgid: In the handler, shut down the Unix socket (only for write)
+ once we finish writing the request body to the cgi child process;
+ otherwise, the client doesn't hit EOF on stdin. Small request bodies
+ worked without this change (for reasons I don't understand), but large
+ ones didn't. [Jeff Trawick]
+
+ *) Remove file bucket specific information from the ap_bucket type.
+ This has been moved to a file_bucket specific type that hangs off
+ the data pointer in the ap_bucket type.
+ [Ryan Bloom]
+
+ *) Input filtering now has a third argument. This is the amount of data
+ to read from lower filters. This argument can be -1, 0, or a positive
+ number. -1 means give me all the data you have, I'll deal with it and
+ let you know if I need more. 0 means give me one line and one line
+ only. A positive number means I want no more than this much data.
+
+ Currently, only 0 and a positive number are implemented. This allows
+ us to remove the remaining field from the conn_rec structure, which
+ has also been done.
+ [Ryan Bloom]
+
+ *) Big cleanup of the input filtering. The goal is that http_filter
+ understands two conditions, headers and body. It knows where it is
+ based on c->remaining. If c->remaining is 0, then we are in headers,
+ and http_filter returns a line at a time. If it is not 0, then we are
+ in body, and http_filter returns raw data, but only up to c->remaining
+ bytes. It can return less, but never more.
+ [Greg Ames, Ryan Bloom, Jeff Trawick]
+
+ *) mod_cgi: Write all of the request body to the child, not just what
+ the kernel would accept on the first write. [Jeff Trawick]
+
+ *) Back out the change that moved the brigade from the core_output_filters
+ ctx to the conn_rec. Since all requests over a given connection
+ go through the same core_output_filter, the ctx pointer has the
+ correct lifetime.
+ [Ryan Bloom]
+
+ *) Fix another bug in the send_the_file() read/write loop. A partial
+ send by apr_send would cause unsent data in the read buffer to
+ get clobbered. Complete making send_the_file handle partial
+ writes to the network.
+ [Bill Stoddard]
+
+ *) Fix a couple of type fixes to allow compilation on AIX again
+ [Victor J. Orlikowski ]
+
+ *) Fix bug in send_the_file() which causes offset to be ignored
+ if there are no headers to send.
+ [Bill Stoddard]
+
+ *) Handle APR_ENOTIMPL returned from apr_sendfile in the core
+ filter. Useful for supporting Windows 9* with a binary
+ compiled on Windows NT.
+ [Bill Stoddard]
+
+Changes with Apache 2.0a7
+
+ *) Reimplement core_output_filter to buffer/save bucket brigades
+ across multiple calls to the core_filter. The brigade will be
+ sent when either MIN_BYTES_TO_SEND or MAX_IOVEC_TO_WRITE
+ thresholds are hit or the EOS bucket is received.
+ [Bill Stoddard]
+
+ *) Create experimental filter (buffer_filter) that coalesces bytes
+ into one large buffer before invoking the next filter in the
+ chain. This filter is particularly useful with the current
+ implementation of mod_autoindex when it inserted above the
+ chunk_filter. mod_autoindex generates a lot of brigades that
+ containing buckets holding just a few bytes each. The
+ buffer_filter coalesces these buckets into a single large bucket.
+ [Bill Stoddard]
+
+ *) Add apr_sendfile() support into the core_output_filter.
+ [Bill Stoddard]
+
+ *) Add apr_sendv() support into the core_output_filter.
+ [Bill Stoddard]
+
+ *) Fix mod_log_config so that it compiles cleanly with BUFFERED_LOGS
+ [Mike Abbott ]
+
+ *) Remove ap_send_fb. This is no longer used in Apache, and it doesn't
+ make much sense, because Apache uses buckets instead of BUFFs now.
+ [Ryan Bloom]
+
+ *) send_the_file now falls back to a read/write loop on platforms that
+ do not have sendfile.
+ [Ryan Bloom and Brian Havard]
+
+ *) Install apachectl correctly, and substitute the proper values so
+ that it works again. [Ryan Bloom]
+
+ *) Better(??) handle platforms that lack sendfile().
+ [Jim Jagielski]
+
+ *) APR now has UUID generation/formatting/parsing support.
+ [Greg Stein]
+
+ *) Begin the http_filter. This is an input filter that understands
+ the absolute basic amount required to parse an HTTP Request. The
+ goal is to be able to split headers from request body before passing
+ the data back to the other filters.
+ [Ryan Bloom]
+
+ *) Bring forward from 1.3.13 the config directory implementation
+ [Jim Jagielski]
+
+ *) install apxs if it is created
+ [Ryan Bloom]
+
+ *) Added APR_IS_STATUS_condition test macros to eliminate canonical error
+ conversions. [William Rowe]
+
+ *) Now that we have ap_add_input_filter(), rename ap_add_filter() to
+ ap_add_output_filter(). [Jeff Trawick]
+
+ *) Multiple build and configuration fixes
+ Build process:
+
+ -add datadir and localstatedir substitutions
+ -fix layout name
+ -fix logfilename misspelling
+ -fix evaluation of installation dir variables and
+ -replace $foobar by $(foobar) to be usefull in the makefile
+
+ Cross compile:
+
+ -add rules for cross-compiling in rules.mk. Okay, rule to check for
+ $CC_FOR_BUILD is still missing
+ -use CHECK_TOOL instead of CHECK_PROG for ranlib
+ -add missing "AR=@AR@" to severaly Makefile.in's
+ -cache result for "struct rlimit"
+ -compile all helper programs with native and cross compiler
+ and use the native version to generate header file
+ ["Rüdiger" Kuhlmann ]
+
+ *) Prepare our autoconf setup for autoconf 2.14a and for cross-
+ compiling.
+ ["Rüdiger" Kuhlmann ]
+
+ *) Fix a bug where a client which only sends \n to delimit header
+ lines (netcat) gets a strange looking HTTP_NOT_IMPLEMENTED
+ message. Start working on ebcdic co-existance with input
+ filtering.
+ [William Rowe, Greg Ames]
+
+ *) If mod_so is enabled in the server always create libexec, even
+ if there are no modules installed in this directory. This is a
+ requirement for APXS to work correctly.
+ [Ryan Bloom]
+
+ *) Connection oriented output filters are now stored in the
+ conn_rec instead of the request_rec. This allows us to add the
+ output filter in the pre-connection phase instead of the
+ post_read_request phase, which keeps us from trying to write an
+ error page before we have a filter to write to the network.
+ [Ryan Bloom, Jeff Trawick, and Greg Ames]
+
+ *) Cleaning up an mmap bucket no longer deletes the mmap. An
+ mmap can be used across multiple buckets (default_handler with
+ byte ranges, mod_file_cache, mod_mmap_static), so cleanup of
+ the mmap itself can't be associated with the bucket.
+ [Jeff Trawick]
+
+ *) Add .dll caching directive ISAPICacheFile to mod_isapi.
+ [William Rowe]
+
+ *) Radical surgery to improve mod_isapi support under Win32.
+ Includes a number of newer ServerSupportFunction calls, support
+ for ReadClient (in order to retrieve POSTs greater than 48KB),
+ and general bug fixes to more reliably load ISAPI .dll's and
+ prevent leaking handle resources. Note: There are still
+ discrepancies between IIS's and Apache's ServerVariables, and
+ async calls are still not supported. Additional warnings are
+ logged to facilitate debugging of unsupported ISAPI calls.
+ [William Rowe]
+
+ *) Add input filtering to Apache. The basic idea for the input
+ filters is the same as the ideas for output filters. The biggest
+ difference is that instead of calling ap_pass_brigade, ap_get_brigade
+ should be called, and the order of execution for the filter itself is
+ different. When writing an output filter, a brigade is passed in,
+ and filters operate directly on that brigade, when done, they call
+ ap_pass_brigade. Input filters are the exact opposite. Because input
+ is not a push operation, filters first call ap_get_brigade. When this
+ function returns, the input filter will be left with a valid brigade.
+ The input filter should then operate on the brigade, and return.
+ [Ryan Bloom]
+
+ *) Fix building on BSD/OS using its native make. The build system
+ falls back to the BSD .include directive on that host platform.
+ [Sascha Schumann]
+
+ *) Expand dbmmanage to allow -d -m -s -p options for Crypt, MD5,
+ SHA1 and plaintext password encodings. Make feature tests a
+ bit more flexible. [William Rowe]
+
+ *) Charset translation: mod_charset_lite handles output content
+ translation in a filter. mod_charset_lite no longer ignores
+ subrequests. A bunch of cruft related to BUFF's support for
+ translating request and response bodies was removed.
+ [Jeff Trawick]
+
+ *) Move the addition of the CORE filter to the post_read_request
+ hook in http_core.c. This removes the need to add the filter in
+ multiple places and allows for an SSL module to be added much
+ simpler. [Ryan Bloom]
+
+ *) Fix a security problem that affects certain configurations of
+ mod_rewrite. If the result of a RewriteRule is a filename that
+ contains expansion specifiers, especially regexp backreferences
+ $0..$9 and %0..%9, then it may be possible for an attacker to
+ access any file on the web server. [Tony Finch]
+
+ *) Fix a bug where errors that are detected during early request parsing
+ don't produce visible HTTP error messages at the browser, because
+ the core_filter wasn't present. [Greg Ames]
+
+ *) Provide apr_socklen_t as a portability aid.
+ [Victor J. Orlikowski]
+
+ *) Overhaul of dbmmanage to allow a groups arg (as in Apache 1.2)
+ as well as a comment arg to the add, adduser and update cmds.
+ update allows the user to clear or preserve pw/groups/comment.
+ Fixed a bug in dbmmanage that prevented the check option from
+ parsing a password followed by :group... text. Corrected the
+ seed calcualation for Win32 systems, and added -lsdbm support.
+ [William Rowe]
+
+ *) Configured mod_auth_dbm to compile with sdbmlib under Win32.
+ [William Rowe]
+
+ *) Avoid a segfault when parsing .htaccess files. An
+ uninitialized tree pointer was passed to ap_build_config().
+ [Jeff Trawick]
+
+ *) Change the way that inet_addr & inet_network are checked for
+ in APR's configure process to allow BeOS BONE to correctly
+ find them. With this change BeOS BONE now builds from source
+ with no problems. [David Reid]
+
+ *) Fix a bug in apr_create_process() for Unix. The NULL signifying
+ the end of the parameters to execve() was stored in the wrong
+ location, overlaying the storage beyond the newargs[] array and
+ also passing uninitialized storage to execve(), which would
+ sometimes fail with EFAULT. [Jeff Trawick]
+
+ *) Fix a bug parsing configuration file containers. With a sequence
+ like this in the config file
+
+
+ any stuff
+
+
+ (blank line)
+ any stuff
+
+
+ the second container would be terminated at the blank line due to
+ sediment in the buffer from reading the prior and an
+ error message would be generated for the real for the
+ second container. Also due to this problem, any two characters
+ could be used for "" in the close of a container.
+ [Jeff Trawick]
+
+ *) ap_add_filter prototype changed to remove the ctx pointer. The
+ pointer still remains in the filter structure, but it can not be
+ a part of the ap_add_filter prototype. The reason is that when
+ the core uses AddFilter to add a filter to the stack it doesn't
+ know how to allocate the ctx pointer, or even how much memory should
+ be allocated. The filters will have to be responsible for allocating
+ the ctx memory when they need it.
+ [Ryan Bloom]
+
+ *) Add an AddFilter directive. This directive takes a list of filters
+ that should be activated for the requested resource.
+ [Ryan Bloom]
+
+ *) apr_snprintf(): Get quad format strings working on OS/390 (and perhaps
+ some other platforms). [Jeff Trawick]
+
+ *) Modify mod_include to be a filter. Currently, it has only been tested
+ on actual files, but it should work for CGI scripts too.
+ [Ryan Bloom]
+
+ *) apr_putc(), apr_puts() for Unix: handle buffered files and interrupted
+ writes. apr_flush() for Unix: handle interrupted writes.
+ [Jeff Trawick]
+
+ *) NameVirtualHost can now take "*" as an argument instead of
+ an IP address. This allows you to create a purely name-based
+ virtual hosting server that does not have any IP addresses in
+ the configuration file and which ignores the local address
+ of any connections. PR #5595, PR #4455 [Tony Finch]
+
+ *) Fix some compile warnings in mod_mmap_static.c
+ [Mike Abbott ]
+
+ *) Fix chunking problem with CGI scripts. The general problem was that
+ the CGI modules were adding an EOS bucket and then the core added an
+ EOS bucket. The chunking filter finalizes the chunked response when it
+ encounters an EOS bucket. Because two EOS buckets were sent, we
+ finalized the response twice. The fix is to make sure we only send one
+ EOS, by utilizing a flag in the request_rec.
+ [Ryan Bloom]
+
+ *) apr_put_os_file() now sets up the unget byte appropriately on Unix
+ and Win32. Previously, the first read from an apr_file_t set up via
+ apr_put_os_file() would return a '\0'. [Jeff Trawick]
+
+ *) Mod_cgid now creates a single element bucket brigade, with a pipe
+ bucket, instead of using BUFF's and ap_r*.
+ [Ryan Bloom]
+
+ *) APRVARS.in no longer overwrites the EXTRA_LIBS variable.
+ [Mike Abbott ]
+
+ *) Remove ap_bopenf from buff code. This required modifying the file_cache
+ code to use APR file's directly instead of going through BUFFs.
+ [Ryan Bloom]
+
+ *) Fix compile break on some platforms for mod_mime_magic.c
+ [John K. Sterling ]
+
+ *) Fix merging of AddDefaultCharset directive.
+ PR #5872 (1.3) [Jun Kuriyama ]
+
+ *) Minor revamp of the rlimit sections of code. We now test
+ explicitly for setrlimit and getrlimit. Also, unixd_set_rlimit()
+ is now "available" even if the platform doesn't support
+ the rlimit family (it's just a noop though). [Jim Jagielski]
+
+ *) Migrate the pre-selection of which MPM to use for specific
+ platforms to hints.m4, which contains (or should contain)
+ all platform specific "hints". [Jim Jagielski]
+
+ *) Remove IOLs from Apache. With filtering, IOLs are no longer necessary
+ [Ryan Bloom]
+
+ *) Add tables with non-string/binary values to APR.
+ [Ken Coar]
+
+ *) Fix some bad calls to ap_log_rerror() in mod_rewrite.
+ [Jeff Trawick]
+
+ *) Update PCRE to version 3.2. [Ryan Bloom]
+
+ *) Change the way buckets' destroy functions are called so that
+ they can be more directly used when changing the type of a
+ bucket in place. [Tony Finch]
+
+ *) Add generic support for reference-counting the resources used by
+ buckets, and alter the HEAP and MMAP buckets to use it. Change
+ the way buckets are initialised to support changing the type of
+ buckets in place, and use it when setting aside TRANSIENT buckets.
+ Change the implementation of TRANSIENT buckets so that it can be
+ mostly shared with IMMORTAL buckets, which are now implemented.
+ [Tony Finch]
+
+Changes with Apache 2.0a6
+
+ *) Add support to Apache and APR for dsos on OS/390. [Greg Ames]
+
+ *) Add a chunking filter to Apache. This brings us one step closer
+ to removing BUFF. [Ryan Bloom]
+
+ *) ap_add_filter now adds filters in a LIFO fashion. The first filter
+ added to the stack is the last filter to be called. [Ryan Bloom]
+
+ *) Apache 2.0 has been completely documented using Scandoc. The
+ docs can be generated by running 'make docs'. [Ryan Bloom]
+
+ *) Add filtered I/O to Apache. This is based on bucket brigades,
+ Currently the buckets still use BUFF under the covers, but that
+ should change quickly. The only currently written filter is the
+ core filter which just calls ap_bwrite. [The Apache Group]
+
+ *) APR locks on Unix: Let APR_LOCKALL locks work when APR isn't
+ built with thread support. [Jeff Trawick]
+
+ *) Abort configuration if --with-layout was specified and there's
+ no layout definition file. [Ken Coar]
+
+ *) Add support for '--with-port=n' option to configure. [Ken Coar]
+
+ *) Add support for extension methods for the Allow response header
+ field, and an API routine for accessing r->allowed and the
+ list of extension methods in a unified manner. [Ken Coar]
+
+ *) mod_cern_meta: fix broken file reading loop in scan_meta_file().
+ [Rob Simonson ]
+
+ *) Get xlate builds working again. The apr renaming in 2.0a5 broke
+ APACHE_XLATE builds. [Jeff Trawick]
+
+ *) A configuration file parsing problem was fixed. When the
+ configuration file started with an IfModule/IfDefine container,
+ only the last statement in the container would be retained.
+ [Jeff Trawick]
+
+Changes with Apache 2.0a5
+
+ *) Perchild is serving pages after passing them to different child
+ processes. There are still a lot of bugs, but this does work. I
+ have made requests against the same installation of Apache, and had
+ different servers use different user IDs to serve the responses.
+ This change moves to using socketpair instead of an AF_UNIX socket.
+ [Ryan Bloom]
+
+ *) Perchild MPM still doesn't work perfectly, but it is serving pages.
+ It can't seem to pass between child processes yet, but I think we
+ are closer now than before. This moves us back to using Unix
+ Domain Sockets. [Ryan Bloom]
+
+ *) libapr functions and types renamed with apr_ prefix.
+ #include "apr_compat.h" for 1.3.x backwards compat
+ [Perl]
+
+ *) Fix problems with APR sockaddr handling on Win32. It didn't always
+ return the right information on the local socket address.
+ [Gregory Nicholls ]
+
+ *) ap_recv() on Win32: Set bytes-read to 0 on error.
+ [Gregory Nicholls ]
+
+ *) Add an option to not detach from the controlling terminal without
+ going into single process mode. This allows for much easier
+ debugging of the process startup code. [Ryan Bloom]
+
+ *) ab: don't use perror() to report the failure of an APR function.
+ [Jeff Trawick]
+
+ *) Make dexter, mpmt_pthread, and perchild MPMs not destroy the
+ scoreboard on graceful restarts.
+ [Ryan Bloom]
+
+ *) Fix segfault/SIGSEGV when running gzip from mod_mime_magic.c.
+ An invalid ap_proc_t was passed to ap_create_process().
+ [Jeff Trawick]
+
+ *) Allow modules to register filters. Those filters are still
+ never called, but this is a step in the right direction.
+ [Ryan Bloom and Greg Stein]
+
+ *) Register the mod_cgid daemon process for cleanup so that it is
+ killed at termination if it does not die when the parent gets
+ SIGTERM. This change is to fix occasional problems where the
+ process stays around. Bugs in similar logic in mod_rewrite and
+ mod_include were also fixed. [Jeff Trawick]
+
+ *) Fix a bug in the time handling. Basically, we were imploding a time
+ in ap_parseHTTPdate, but it had bogus data in the exploded time format.
+ Namely, tm_usec and tm_gmtoff were not filled out. ap_implode_time
+ uses those two fields to adjust the time value. Because of the HTTP
+ spec, both of those values can be zero'ed out safely. This fixes
+ the bug correctly. [Ryan Bloom]
+
+ *) Fix a couple of place in the Windows code where the wrong error
+ code was being returned. [Gregory Nicholls ]
+
+ *) Fix POOL_DEBUG (at least for prefork mpm). [Dean Gaudet]
+
+ *) Added the APR_EOL_STR macro for platform dependent differences in
+ logfiles and other raw text (such as all APR files). Fixes logfiles
+ not terminated with cr/lf sequences in Win32. [William Rowe]
+
+ *) Move all strings functions in APR to src/lib/apr/strings and create
+ apr_strings.h for the prototypes. [Ryan Bloom]
+
+ *) APR lock fixes: when using SysV sems, flock(), or fcntl(), be sure
+ to repeat the syscall until we stop getting EINTR. I noticed a
+ related problem at termination (SIGTERM) on FreeBSD when using
+ fcntl(). Apache 1.3 had these new loops too. Also, make the flock()
+ implementation work properly with child init. Previously, ap_lock()
+ was essentially a no-op because all children were using different
+ locks and thus nobody ever blocked. [Jeff Trawick]
+
+ *) The htdocs/ tree has been moved out of the CVS source tree into
+ a separate area for easier development. This has NO EFFECT on
+ end-users or Apache installations. [Ken Coar]
+
+ *) Integrate the mod_dav module for WebDAV protocol handling. This
+ adds the dav and dav_fs modules, the SDBM library, and additional
+ XML handling utilities. [Greg Stein]
+
+ *) Clean out obsolete names (from httpd.h) for the HTTP Status Codes
+ [Greg Stein]
+
+ *) Update the lib/expat-lite/ library (bring forward changes from
+ the Apache 1.3 repository). [Greg Stein]
+
+ *) If sizeof(long long) == sizeof(long), then prefer long in APR
+ configure.in. [Dave Hill ]
+
+ *) Add ap_sendfile for Tru64 Unix. Also, add an error message for
+ machines where sendfile is detected, but nobody has written ap_sendfile.
+ [Dave Hill ]
+
+ *) Compile fixes in mod_mmap_static. [Victor J. Orlikowski]
+
+ *) ab would start up more connections than needed, then quit when the
+ desired number were finished. Also fixed a logic error involving
+ ab keepalives. [Victor J. Orlikowski]
+
+ *) WinNT: Implement non-blocking pipes with timeouts to communicate
+ with CGIs. Apache 2.0a4 had non-blocking pipes but without
+ timeouts (i.e, if a timeout was specified, the pipe reverted to
+ a full blocking pipe). Now the behaviour is more in line with
+ Unix non-blocking pipes.
+ [Bill Stoddard]
+
+ *) WinNT: Implement accept socket reuse. Using mod_file_cache to
+ cache open file handles along with accept socket reuse enables
+ Apache 2.0 to serve non-keepalive requests for static files at
+ 3x the rate of Apache 1.3.(e.g, Apache 1.3 will serve 400 rps
+ and Apache 2.0 will serve almost 1200 rps on my system).
+ [Bill Stoddard]
+
+ *) Merge mod_mmap_static function into mod_file_cache. mod_file_cache
+ supports two config directives, mmapfile (same behavious as
+ mod_mmap_static) and cachefile. Use the cachefile directive
+ to cache open file handles. This directive only works on systems
+ that have implemented the ap_sendfile API. cachefile works today
+ on Windows NT, but has not been tested on any flavors of Unix.
+ [Bill Stoddard]
+
+ *) Cleanup the configuration. With the last few changes the
+ configuration process automatically:
+ inherits information about how to build from APR. Allowing
+ APR to inform Apache that it should or should not use -ldl
+
+ Detects which mod_cgi should be used mod_cgi or mod_cgid,
+ based on the threading model
+
+ Apache calls APR's configure process before finishing it's
+ configuration processing, allowing for more information flow
+ between the two.
+ [Ryan Bloom]
+
+
+ *) Change Unix and Win32 ap_setsockopt() so that APR_SO_NONBLOCK
+ with non-zero argument makes the socket non-blocking. BeOS and
+ OS/2 already worked this way. [Jeff Trawick]
+
+ *) ap_close() now calls ap_flush() for buffered files, so write
+ operations work a whole lot better on buffered files.
+ [Jeff Trawick]
+
+ *) Fix error messages issued from MPMs which explain where to change
+ compiled-in limits (e.g., ThreadsPerChild, MaxClients, StartTreads).
+ [Greg Ames]
+
+ *) ap_create_pipe() now leaves pipes in blocking state. (This helps
+ reduce the number of syscalls on Unix.) ap_set_pipe_timeout() is
+ now the way that the blocking state of a pipe is manipulated.
+ ap_block_pipe() is gone. [Jeff Trawick]
+
+ *) Correct the problem where the only local host name that the IP stack
+ can discover are 'undotted' private names. If no fully qualified
+ domain name can be identified, the default ServerName will be set to
+ the machine's IP address string. A warning is always provided if the
+ ServerName not specified, but assumed. Solves PR6215 [William Rowe]
+
+ *) Repair problems with config file processing which caused segfault
+ at init when virtual hosts were defined and which caused ServerName to
+ be ignored when there was no valid DNS setup. [Jeff Trawick]
+
+ *) Removed pointless ap_is_aborted macro function. [Roy Fielding]
+
+ *) Add ap_sendfile implementation for AIX
+ [Victor J. Orlikowski]
+
+ *) Repair C++ compatibility in ap_config.h, apr_file_io.h,
+ apr_network_io.h, and apr_thread_proc.h.
+ [Tyler J. Brooks , Jeff Trawick]
+
+ *) Bring the allocation and pool debugging code back into a working
+ state. This will need to be tested as so far it's only been used on
+ BeOS. [David Reid]
+
+ *) Change configuration command setup to be properly typesafe when in
+ maintainer mode. Note that this requires a compiler that can initialise
+ unions. [Ben Laurie]
+
+ *) Turn on buffering for config file reads. Part of this was to
+ repair buffered I/O support in Unix and implement buffered
+ ap_fgets() for all platforms. [Brian Havard, Jeff Trawick]
+
+ *) Win32: Fix problem where UTC offset was not being set correctly
+ in the access log. Problem reported on news group by Jerry Baker.
+ [Bill Stoddard]
+
+ *) Fix segfault when reporting this type of syntax error:
+ " without matching section", where
+ container is VirtualHost or Directory or whatever.
+ [Jeff Trawick]
+
+ *) Prevent the source code for CGIs from being revealed when using
+ mod_vhost_alias and the CGI directory is under the document root
+ and a user makes a request like http://www.example.com//cgi-bin/cgi
+ as reported in
+ [Tony Finch]
+
+ *) Add support for the new Beos NetwOrking Environment (BONE)
+ [David Reid]
+
+ *) xlate: ap_xlate_conv_buffer() now tells the caller when the
+ final input char is incomplete; ap_bwrite_xlate() now handles
+ incomplete final input chars. [Jeff Trawick]
+
+ *) Yet another update to saferead/halfduplex stuff -- need to ensure
+ that a bhalfduplex call occurs before logging or else DNS and
+ such can delay the last packet of the response. [Dean Gaudet]
+
+ *) Some syscall reduction in APR on unix -- don't seek when setting
+ up an mmap; and don't fcntl() more than once per socket.
+ [Dean Gaudet]
+
+ *) When mod_cgid is started as root, the cgi daemon now switches
+ to the configured User/Group (like other httpd processes)
+ instead of continuing as root. [Jeff Trawick]
+
+ *) The prefork MPM now uses an APR lock for the accept() mutex.
+ It has not been getting a lock at all recently. httpd -V now
+ displays APR's selection of the lock mechanism instead of the
+ symbols previously respected by prefork. [Jeff Trawick]
+
+ *) Change the mmap() feature test to check only for existence.
+ The previous check required features not used by Apache.
+ [Greg Ames]
+
+ *) Fix a couple of bugs in mod_cgid: The cgi arguments were
+ sometimes mangled. The len parm to accept() was not
+ initialized, leading sometimes to an endless loop of failed
+ accept() calls on OS/390 and anywhere else that failed the call
+ if the len was negative. Use for struct sockaddr_un
+ instead of declaring it ourselves to fix a compilation problem
+ on Solaris. [Jeff Trawick]
+
+ *) Add Resource limiting code back into Apache 2.0. [Ryan Bloom]
+
+ *) Fix zombie process problem with mod_cgi. [Jeff Trawick]
+
+ *) Port mod_mmap_static to 2.0. Make it go faster. [Greg Ames]
+
+ *) Fix storage overlay when loading dsos. Symptom: Apache dies at
+ initialization if ALLOC_DEBUG is defined; no known symptom
+ otherwise. [Jeff Trawick]
+
+ *) Fix typo in configure script when checking for mod_so. bash
+ doesn't seem to have a problem but /bin/sh on Solaris does.
+ Symptom: "./configure: test: unknown operator =="
+ [Jeff Trawick]
+
+ *) Rebind the Win32 NT and 9x services control into the MPM.
+ All console, WinNT SCM and Win9x pseudo-service control code is
+ now wrapped within the WinNT MPM.
+ [William Rowe]
+
+ *) Make a copy of getenv("PATH") before storing for later use. Some
+ getenv() implementations use the same storage for successive calls.
+ CGIs on OS/390 had a bad PATH due to this. [Jeff Trawick]
+
+ *) Server Tokens work in 2.0 again. This also propogates the change
+ to allow just the product name in the server string using
+ PRODUCT_ONLY.
+ [Ryan Bloom]
+
+Changes with Apache 2.0a4
+
+ *) EBCDIC: Rearrange calls to ap_checkconv() so that most handlers
+ won't need to call it. [Greg Ames, Jeff Trawick]
+
+ *) Move pre_config hook call to between configuration read and config
+ tree walk. This allows all modules to implement pre_config hooks
+ and know that they will be called at an appropriate time.
+ [Ryan Bloom]
+
+ *) mod_cgi, mod_cgid: Make ScriptLog directive work again.
+ [Jeff Trawick]
+
+ *) Add pre-config hooks back to all modules.
+ [Ryan Bloom]
+
+ *) Fix a SIGSEGV in ap_md5digest(), which is used when you have
+ ContentDigest enabled and we can't/don't mmap the file.
+ [Jeff Trawick]
+
+ *) We now report the correct line number for syntax errors in config
+ files. [Ryan Bloom, Greg Stein, Jeff Trawick]
+
+ *) Brought mod_auth_digest up to synch with 1.3, fixed ap_time_t-
+ related bugs, and changed shmem/locking to use apr API. Shared-mem
+ is currently disabled, however, because of problems with graceful
+ restarts. [Ronald Tschalär]
+
+ *) Fix corruption of IFS variable in --with-module= handling.
+ Depending on the user's shell or customization thereof, there
+ would be errors generating ap_config_auto.h later in the configure
+ procedure. [Jeff Trawick]
+
+ *) mod_cgi: Restore logging of stderr from child process when ScriptLog
+ isn't used (as in 1.3), except that on Unix it is now logged via
+ ap_log_rerror() instead of by the child having STDERR_FILENO refer
+ to the error log. [Greg Ames, Jeff Trawick]
+
+ *) Add '-D' argument processing for run time configuration defines.
+ [William Rowe]
+
+ *) Organize http_main.c as independent code, such that no code or
+ global data is exported from it. WIN32 will dynamically link it
+ to the server core, so this will prevent mutual dependency.
+ [William Rowe]
+
+ *) Add separate dynamic linkage tags APR_EXPORT(), APR_EXPORT_NONSTD()
+ and APR_VAR_EXPORT to correctly resolve apr functions and globals.
+ [William Rowe]
+
+ *) Add Win9x service execution and Ctrl+C/Ctrl+Break/Shutdown handlers.
+ [William Rowe, Jan Just Keijser ]
+
+ *) Add mod_charset_lite for configuring character set translation.
+ [Jeff Trawick]
+
+ *) Add '-n' option to htpasswd to make it print its user:pw record
+ on stdout rather than having to frob a text file. [Ken Coar]
+
+ *) Fix saferead. Basically, we flush the output buffer if a read on the
+ input will block.
+ [Ryan Bloom]
+
+ *) APR: Add ap_xlate_get_sb() so that an app can find out whether or not
+ a conversion is single-byte only. [Jeff Trawick]
+
+ *) BEOS: ap_shutdown should return APR_SUCCESS or errno. Note that
+ the BeOS 5.0 documentation says that shutdown doesn't work yet.
+ [Roy Fielding]
+
+ *) Fix some minor errors where pid was being manipulated as an int
+ instead of the portable pid_t. [Roy Fielding]
+
+ *) Fix some error log prints that were printing the pointer to a
+ structure rather than the pid within the structure.
+ [Jeff Trawick, Roy Fielding]
+
+ *) ab: Fix a command-line processing bug; track bad headers in
+ err_response; support reading headers up to 2K.
+ [Ask Bjoern Hansen ]
+
+ *) Fix ap_resolve_env() so that it handles new function added in a prior
+ alpha (see "Added the capability to do ${ENVVAR} constructs in the
+ config file.") as well as the constructs used by mod_rewrite.
+ [Paul Reder ]
+
+ *) Apache 2.0 builds and runs on OS/390. [Jeff Trawick, Greg Ames]
+
+ *) Change the EBCDIC support in functions for MD5, SHA1, and base 64 to use
+ APR to perform translation, instead of accessing the hard-coded tables
+ in 1.3's ebcdic.c. [Jeff Trawick]
+
+ *) Fix some bugs (mostly lost 1.3 code) in ab's command-line processing.
+ [Jeff Trawick]
+
+ *) Add the ability to hook into the config file reading phase. Basically
+ if a directive is specified EXEC_ON_READ, then when that directive is
+ read from the config file, the assocaited function is executed. This
+ should only be used for those directives that must muck with HOW the
+ server INTERPRETS the config. This should not be used for directives
+ that re-order or replace items in the config tree. Those changes should
+ be made in the pre-config step.
+ [Ryan Bloom]
+
+ *) Add mod_example to the build system.
+ [Tony Finch]
+
+ *) APR: Add ap_xlate_conv_byte() to convert one char between single-
+ byte character sets. [Jeff Trawick]
+
+ *) Pick up various EBCDIC fixes from 1.3 (from Martin
+ Kraemer and Oliver Reh originally according to the change log).
+ [Jeff Trawick]
+
+ *) Fix a couple of problems in RFC1413 support (controlled by the
+ IdentityCheck directive). Apache did not build the request string
+ properly and more importantly Apache would loop forever if the
+ would-be ident server dropped the connection before sending a
+ properly terminated response. [Jeff Trawick]
+
+ *) apxs works in 2.0.
+ [Ryan Bloom]
+
+ *) Reliable piped logs work in 2.0.
+ [Ryan Bloom]
+
+ *) Introduce a hash table implementation into APR to be used for
+ replacing tables and other random data structures in Apache.
+ [Tony Finch]
+
+ *) Add some more error reporting to htpasswd in the case of problems
+ generating or accessing the temporary file. Also, pass in a
+ buffer if the implementation knows how to use it (i.e., if L_tmpnam
+ is defined). [Ken Coar]
+
+ *) Configure creates config.nice now containing your configure
+ options. Syntax: ./config.nice [--more-options]
+ [Sascha Schumann]
+
+ *) Fix various return code problems in APR on Win32. For most of
+ these, APR was returning APR_EEXIST instead of GetLastError()/
+ WSAGetLastError(). [Jeff Trawick]
+
+ *) Make piped logs work again in version 2.0
+ [Ryan Bloom]
+
+ *) Add VPATH support to UNIX build system of Apache and APR.
+ [Sascha Schumann]
+
+ *) Fix ap_tokenize_to_argv to respect the const arguments that are
+ passed to it.
+ [Ryan Bloom]
+
+ *) Fix mm's memcpy/memset macros, pointer arithmetic was broken.
+ Patch submitted to author.
+ [Sascha Schumann]
+
+ *) Fix mm configuration on Solaris 8 x86 and OS/390. Don't require
+ /sbin in PATH on FreeBSD (all submitted to rse previously)
+ [Jeff Trawick]
+
+ *) Fix building Pthread-based MPMs on OpenBSD
+ [Sascha Schumann] PR#26
+
+ *) Fix ap_readdir() problem on systems where d_name[] field in
+ struct dirent is declared with only one byte. (This problem only
+ affected multithreaded builds.) This caused a segfault during
+ pool cleanup with mod_autoindex on Solaris (Solaris 8 x86, at
+ least). [Jeff Trawick]
+
+ *) Fix some make-portability problems on at least Tru64, Irix
+ and UnixWare.
+ [Sascha Schumann] PR#18, PR#39
+
+ *) Add ap_sigwait() to support old-style sigwait() on systems
+ like OS/390 and UnixWare.
+ [Sascha Schumann]
+
+ *) Add POSIX-thread flags for more platforms.
+ [Sascha Schumann]
+
+ *) Fix some minor bugs in ap_strerror(). Teach ap_strerror()
+ (on Unix, at least) to handle resolver errors. Fix a bug in
+ the definition of APR_ENOMEM so that ap_strerror() can spit
+ out the correct error message for it.
+ [Jeff Trawick]
+
+Changes with Apache 2.0a3
+
+ *) mod_so reports ap_os_dso_error() if ap_dso_load() fails
+ [Doug MacEachern]
+
+ *) API: *HOOK* macros now have an AP_ prefix
+ [Doug MacEachern]
+
+ *) Win32: Eliminate redundant calls to initialize winsock.
+ [Tim Costello ]
+
+ *) Fix bugs initializing ungetchar for pipes.
+ [Chia-liang Kao ]
+
+ *) The ab program in the src/support directory is now portable using
+ APR.
+ [Ryan Bloom]
+
+ *) Support directory is being compiled when the server is built
+ [Ryan Bloom]
+
+ *) The configure option --with-program-name has been added to allow
+ developers to rename the executable at configure time. This also
+ changes the name of the config files to match the executable's name.
+ [Ryan Bloom]
+
+ *) mod_autoindex: Add `IndexOptions +VersionSort', to nicely sort filenames
+ containing version numbers. [Martin Pool]
+
+ *) ap_open(..,APR_OS_DEFAULT,..) uses perms 0666 instead of 0777 on
+ Unix; access_log and error_log now created with these perms; non-
+ Unix is unaffected [Jeff Trawick]
+
+ *) Finished move of ap_md5 routines to apr_md5. Removed ap_md5.h.
+ Replaced more magic numbers with MD5_DIGESTSIZE.
+ [William Rowe, Roy Fielding]
+
+ *) Win32: Get mod_auth_digest compiling and added to the Windows
+ build environment. Not tested and I'd be suprised if it
+ actually works. [Bill Stoddard]
+
+ *) Revamp the Win32 make environment. Makefiles have been removed and
+ Apache.dsw created to bring together all the pieces. Create new file
+ os/win32/BaseAddr.ref to define module base addresses (to prevent
+ dll relocation at start-up).
+ [William Rowe, Greg Marr, Tim Costello, Bill Stoddard]
+
+ *) [EBCDIC] Port Paul Gilmartin's CRLF patch from 1.3. This replaces most
+ of the \015, \012, and \015\012 constants with macros.
+ [Greg Ames ]
+
+ *) Add ap_xlate_open() et al for translation of text between different
+ character sets. The initial implementation requires iconv().
+ [Jeff Trawick]
+
+ *) More FAQs and answers from comp.infosystems.www.servers.unix.
+ [Joshua Slive ]
+
+ *) CGI output is being timed out now.
+ [Ryan Bloom]
+
+ *) Fix the problem with dieing quietly. dupfile now takes a pool which
+ is used by the new apr file. There is no reason to create a new file
+ with the same lifetime as the original file.
+ [Ryan Bloom]
+
+ *) Win32: Attempt to eliminate dll relocation at start-up by specifying
+ module base addresses. This will help shooting seg faults
+ in the field. [William Rowe ]
+
+ *) Update Apache on Windows documentation. Add new document
+ describing how to compile Apache on Windows.
+ [William Rowe ]
+
+ *) ap_set_pipe_timeout(), ap_poll(), and APR_SO_TIMEOUT now take
+ microseconds instead of seconds. Some storage leaks and other
+ minor bugs in related code were fixed. [Jeff Trawick]
+
+ *) Win32: First cut at getting mod_isapi working under 2.0
+ [William Rowe ]
+
+ *) First stab at getting mod_auth_digest working under 2.0
+ quick change summary:
+ - moved the random byte generation (ap_generate_random_bytes) into APR
+ - now uses ap_time_t
+ - compiles and runs on linux
+ - tested with amaya
+ [Brian Martin ]
+
+ *) Win32: Move the space stripping of physical service names
+ fix up from Apache 1.3. #include'ing "ap_mpm.h" fixes up an
+ unresolved symbol. Add dependency checking to the
+ CreateService call to ensure TCPIP and AFP (winsock) is started
+ before Apache.
+ [William Rowe ]
+
+ *) Win32: Add code to perform latebinding on functions that may
+ not exist on all levels of Windows where Apache runs. This
+ is needed to allow Apache to start-up on Win95/98. All calls
+ to non portable functions should be protected with
+ ap_oslevel checks to prevent runtime segfaults.
+ [William Rowe ]
+
+ *) Fix fallback default values for SHM_R and SHM_W [Martin Kraemer]
+
+ *) Get lingering_close() working again. [Dean Gaudet, Jeff Trawick]
+
+ *) Win32: Get non-blocking CGI pipe reads working under Windows NT.
+ This addresses PR 1623. Still need to address timing out runaway
+ CGI scripts. [Bill Stoddard]
+
+ *) Win32: Make ap_stat Windows 95/98 friendly
+ [William Rowe ]
+
+ *) Win32: Fix a bug in ap_get_oslevel which causes GetVersionEx() to
+ always fail. Need to initialise the dwOSVersionInfoSize member of the
+ OSVERSIONINFO struct before calling GetVersionEx, so GetVersionEx
+ always fails.
+
+ The patch also enhances ap_get_oslevel (and the associated enum) to
+ handle selected service packs for NT4, and adds recognition for
+ Windows 2000. This is useful, eg. if we can recognise NT4 SP2 then
+ we can use ReadFileScatter and WriteFileGather in readwrite.c.
+ [Tim Costello ]
+
+ *) Get mod_rewrite building and running, and mod_status building for Win NT
+ [Allan Edwards ]
+
+ *) Patch to port mod_auth_db to the 2.0 api and also to support
+ Berlekey DB 3.0. It works for me with both Berkeley DB 3.0.55 and
+ 2.7.7. It should work with version 1 as well but I haven't tested it.
+ [Brian Martin ]
+
+ *) Get APR DSO code working under Windows. Includes cross platform
+ fixes to mod_so.c.
+ [Tim.Costello@BTFinancialgroup.com]
+
+ *) Fix some of the Windows APR time functions.
+ [William Rowe]
+
+ *) FAQ changes related to tidying up historical documents on the web site.
+ [Joshua Slive ]
+
+ *) Move Windows DSO code into APR.
+ [Bill Stoddard]
+
+ *) Eliminate apr_win.h and apr_winconfig.h (and the ugly #ifdefs they cause).
+ Now, apr.h and apr_config.h are generated from apr.hw and apr_config.hw
+ at build time. At this point, the server will not compile on Windows because
+ of the recent DSO commits. Fixing those next.
+ [Bill Rowe & Bill Stoddard]
+
+ *) Added error checking for file I/O APR routines.
+ [Jon Travis ]
+
+ *) APR: Don't use the values of resolver error codes for the
+ corresponding APR error codes. On Unix and Win32, return the
+ proper APR error code after a resolver error. [Jeff Trawick]
+
+Changes with Apache 2.0a2
+
+ *) Renamed the executable back to httpd on all platforms other
+ than Win32
+ [Ryan Bloom]
+
+ *) Allow BeOS to survive restarts, log properly and a few
+ small things it had problems with due to the way it setup
+ users and groups. [David Reid]
+
+ *) Get mod_rewrite working with APR locks
+ [Paul Reder ]
+
+ *) Actually remove the sempahore when the lock cleanup routine
+ is called on BeOS. [David Reid]
+
+ *) Clear hook registrations between reads of the config file.
+ When DSOs are unloaded and re-loaded the old hook pointers may
+ no longer be valid. This fix eliminates potential segfaults.
+ [Allan Edwards ]
+
+ *) Fix a problem with Sigfunc not being defined or bypassed
+ if sigaction() wasn't found. [Jim Jagielski]
+
+ *) Fix the locking mechanism on BSD variants. They now use fcntl
+ locks. This allows the server to start and serve pages.
+ [Ryan Bloom]
+
+ *) First cut at getting the Win32 installer to work
+ [William Rowe ]
+
+ *) Get htpasswd compiling under Windows
+ [William Rowe ]
+
+ *) Change the log message for a bind() failure to show the
+ interface and port number. [Jeff Trawick]
+
+ *) Import the documentation from 1.3.12 and bring parts of it
+ up-to-date with respect to the changes that have occurred
+ in 2.0.
+ [Tony Finch]
+
+ *) BeOS MPM updated. CGI bug on BeOS fixed. IP addresses
+ now logged correctly on BeOS.
+ [David Reid]
+
+ *) Create one makefile for all Win32 distributions (NT/2000/95/98).
+ Makefile.win includes the same user interface as the old
+ Makefile.nt
+ [William Rowe , Jeff Trawick ]
+
+ *) Win32 exec now uses COMSPEC environment string for command
+ shell path resolution.
+ [William Rowe ] PR#3715
+
+ *) Win32: ap_connect() was not returning correct error condition
+ PR5866
+ [Allen Prescott ]
+
+ *) Win32: ap_open() was broken on Win9x because an NT-specific
+ flag was passed to CreateFile. ap_puts() added an unnecessary
+ '\n'.
+ [Jeff Trawick ]
+
+ *) Put in Korean and Norwegian index.html pages (2.0 and 1.3)
+ which where donated by Lee Kuk Hyun and Lorant Czaran. 'Fixed'
+ confusing ee/et name and made all extensions language/dialect
+ rather than country reflecting. Changed example files to
+ explicit reflect the ISO charset and added a few common
+ ones to the example config [dirkx]
+
+ *) Extend external module capability. To use this, you call
+ configure with --with-module=path/to/mod1,path/to/mod2,etc.
+ [Ryan Bloom]
+
+ *) Backported the various "default charset" fixes from 1.3.12,
+ including the AddDefaultCharset directive. [Jim Jagielski]
+
+ *) Added the capability to do ${ENVVAR} constructs in the
+ config file. E.g. 'ServerAdmin ${POSTMASTER}'. As commited
+ it does this on a line by line basis; i.e. if the envvar
+ expands to something with spaces you have to protect it
+ by adding quotes around it (Unless of course you expect it
+ to contains more than one argument. Alternatively you
+ can compile it on a per token basis; which is what people
+ usually expect by setting RESOLVE_ENV_PER_TOKEN. But this
+ hampers fancier hacks.
+ [Dirk-Willem van Gulik]
+
+ *) Changed the 'ErrorDocument' syntax in that it NO longer
+ supports the asymetric
+
+ ErrorDocument 301 "Some message
+
+ Note the opening " quote, without a closing quote. It now
+ has either the following syntaxes
+
+ ErrorDocument XXX /local/uri
+ ErrorDocument XXX http://valid/url
+ ErrorDocument XXX "Some Message"
+
+ The recognition heuristic is: if it has a space it
+ is a message. If it has no spaces and starts with a /
+ or is a valid URL then treat it that way. Otherwise it
+ is assumed to be a message.
+
+ This breaks backward compatibility but makes live a hell
+ of a lot easier for GUI's and config file parsers.
+ [Dirk-Willem van Gulik]
+
+ *) Changed 'CacheNegotiatedDocs' from its present/not-present
+ syntax into a 'on' or 'off' syntax. As it currently is the
+ only non nesting token which uses NO_ARGS and thus is an
+ absolute pain for any config interface automation. This
+ breaks backward compatibility. [Dirk-Willem van Gulik]
+
+ *) Add ability to add external modules to the build process. This is
+ done with --with-module=/path/to/module. Modules can only be added
+ as static modules at this point.
+ [Ryan Bloom]
+
+Changes with Apache 2.0a1
+
+ *) Fix FreeBSD 3.3 core dump.
+ Basically, ap_initialize() needs to get called before
+ create_process(), since create_process() passes op_on structure
+ to semop() to get a lock, but op_on isn't initialized until
+ ap_initialize() calls setup_lock(). Here is a slight
+ rearrangement to main() which calls ap_initialize() earlier...
+ [Jeff Trawick ]
+
+ *) Enable Apache to use sendfile/TransmitFile API
+ [Bill Stoddard, David Reid, Paul Reder]
+
+ *) Re-Implement Win32 APR network I/O APIs and most of the file I/O
+ APIs.
+ [Bill Stoddard]
+
+ *) Make file I/O and network I/O writev/sendv APIs consistent.
+ Eliminate use of ap_iovec_t and use Posix struct iovec.
+ Use seperate variable on ap_writev to set the number of iovecs
+ passed in and number of bytes written.
+ [Bill Stoddard]
+
+ *) Adapt file iol to use APR functions. Replaced ap_open_file()
+ with ap_create_file_iol(). ap_create_file_iol() requires that
+ the file be opened prior to the call using ap_open().
+ [Bill Stoddard]
+
+ *) Port mod_include and mod_cgi to 2.0
+ [Paul Reder, Bill Stoddard]
+
+ *) ap_send{,v}, ap_recv, ap_sendfile API clarification --
+ bytes_read/bytes_written is always valid (never -1). Plus
+ some fixes to buff.c to correct problems introduced by the
+ errno => ap_status_t changes a while back. Plus a fix to
+ chunked encoding introduced right at the beginning of 2.0.
+ [Dean Gaudet]
+
+ *) Revamped UNIX build system to use autoconf and libtool.
+ [Manoj Kasichainula, Sascha Schumann]
+
+ *) port mod_rewrite to 2.0. [Paul J. Reder ]
+
+ *) More rigorous checking of Host: headers to fix security problems
+ with mass name-based virtual hosting (whether using mod_rewrite
+ or mod_vhost_alias).
+ [Ben Hyde, Tony Finch]
+
+ *) Add back support for UseCanonicalName in containers.
+ [Manoj Kasichainula]
+
+ *) Added APLOG_STARTUP log type. This allows us to write an error
+ message without any of the date and time information. As a part
+ of this change, I also removed all of the calls to fprintf(stderr
+ and replaced them with calls to ap_log_error using APLOG_STARTUP
+ writing to stderr is no longer portable, because we don't direct
+ stderr to the error log on all platforms.
+ [Ryan Bloom]
+
+ *) Convert error logging functions to take errno as an argument.
+ This makes our error logs more portable, because some Windows API's
+ don't set errno. This change allows us to still output a valid
+ message on all of our platforms.
+ [Ryan Bloom]
+
+ *) mod_mime_magic runs in 2.0-dev now.
+ [Paul Reder ]
+
+ *) sendfile has been added to APR.
+ [John Zedlewski ]
+
+ *) buff.c has been converted to no longer use errno.
+ [Manoj Kasichainula]
+
+ *) mod_speling runs in 2.0-dev now: a bug in readdir_r handling and
+ interface adaption to APR functions did it. [Martin Kraemer]
+
+ *) Support DSOs properly on 32-bit HP-UX 11.0
+ [Dilip Khandekar ]
+
+ *) Updated MM in APR source tree from version 1.0.8 to 1.0.11
+ [Ralf S. Engelschall]
+
+ *) Cleaned APR build environment integration and bootstrap APR
+ automatically for developers from src/Configure.
+ [Ralf S. Engelschall]
+
+ *) Fixed building of src/support/htpasswd.c
+ [Ralf S. Engelschall]
+
+ *) When generating the Location: header, mod_speling forgot
+ to escape the spelling-fixed uri. (Forw-Port from 1.3)
+ [Martin Kraemer]
+
+ *) Moved mod_auth_digest.c from experimental to standard. [Roy Fielding]
+
+ *) Change all pools to APR contexts. This is the first step to
+ incorporating APR into Apache. [Ryan Bloom]
+
+ *) Move "handler not found" warning message to below the check
+ for a wildcard handler. [Dirk , Roy Fielding]
+ PR#2584, PR#2751, PR#3349, PR#3436, PR#3548, PR#4384, PR#4795, PR#4807
+
+ *) Support line-continuation feature in config.option file and
+ allow the loading of multiple option sections at once via
+ ``--with-option=,,...''
+ [Ralf S. Engelschall]
+
+ *) Rebuilt CVS repository with Apache 1.3.9 as basis. [Roy Fielding]
+
+Changes with Apache MPM
+
+ *) Use asynchronous AcceptEx() and a completion port to accept and
+ dispatch connections to threads in Windows NT/2000.
+ [Bill Stoddard]
+
+ *) Implement WINNT Win32 MPM from original Win32 code in http_main.c
+ [Bill Stoddard]
+
+ *) Implement the APACI --with-option facility
+ (per default used the config.option file).
+ [Ralf S. Engelschall]
+
+ *) MPM BEOS port. [David Reid ]
+
+ *) Start to implement module-defined hooks that are a) fast and b) typesafe.
+ Replace pre_connection module call with a register_hook call and
+ implement pre_connection as a hook. The intent is that these hooks will
+ be extended to allow Apache to be multi-protocol, and also to allow the
+ calling order to be specified on a per-hook/per-module basis.
+ [Ben Laurie]
+
+ *) Implement mpm_* methods as "modules". Each method gets its own
+ subdir in src/modules (eg: src/modules/prefork). Selection
+ of method uses Rule MPM_METHOD. [Jim Jagielski]
+
+ *) Port the hybrid server from the apache-apr repository as
+ mpm_mpmt_pthread. [Manoj Kasichainula]
+
+ *) os/unix/unixd.[ch]: detach, setuid, setgid, stuff which will be common
+ amongst the unix MPMs.
+
+ *) mpm_prefork: throw away all the alarm/timeout crud; and clean up the
+ signal handling for the new world order. [Dean Gaudet]
+
+ *) Crude ap_thread_mutex abstraction so that we get the pthread stuff out
+ of alloc.c for now. [Dean Gaudet]
+
+ *) Handle partial large writes correctly. [Ben Laurie]
+
+ *) Eliminate conn_rec's pointer to server. All it knows is the base server
+ based on IP/port. [Ben Laurie]
+
+ *) Port a bunch of modules to the new module structure.
+ ["Michael H. Voase" ]
+
+ *) I/O layering and BUFF revamp. See docs/buff.txt. [Dean Gaudet]
+
+ *) Basic restructuring to introduce the MPM concept; includes various
+ changes to the module API... better described by
+ docs/initial_blurb.txt. [Dean Gaudet]
+
+Changes with Apache pthreads
+
+ *) New buff option added: BO_TIMEOUT. It describes the timeout for
+ buff operations (generally over a network).
+ [Dean Gaudet, Ryan Bloom, Manoj Kasichainula]
+
+ *) Created http_accept abstraction. Added 4 new functions (not exported):
+ init_accept(), begin_accepting_requests(), get_request(),
+ stop_accepting_requests() [Bill Stoddard]
+
+ *) Fix to ap_rprintf call that allows mod_info to work properly.
+ [James Morris ]
+
+ *) user and ap_auth_type fields were moved from connection_rec to
+ request_rec. [Ryan Bloom]
+
+ *) Removed the ap_block_alarms and ap_unblock_alarm calls. These aren't
+ needed in a threaded server.
+
+ *) Initial pthread implementation from from Dean's apache-nspr code.
+ [Bill Stoddard, Ryan Bloom]
+
+
+Changes with Apache 1.3.9
+
+ *) Remove bogus error message when a redirect doesn't set Location.
+ Instead, use an empty string to avoid coredump if the error message
+ was supposed to include a location. [Roy Fielding]
+
+ *) Don't allow configure to include mod_auth_digest unless it is
+ explicitly requested, even if the user asked for all modules.
+ [Roy Fielding]
+
+ *) Translate module names to dll names for OS/2 so that they are no more
+ than 8 characters long and have an extension of "dll" instead of "so".
+ [Brian Havard]
+
+ *) Print out pointer to Rule DEV_RANDOM when truerand lib not found.
+ Fix test-compile check to check for randbyte instead of trand32.
+ Use ap_base64encode_binary/decode instead of copy in mod_auth_digest.c
+ and tweak to make Amaya happier. [Ronald Tschalär]
+
+ *) Ensure that the installed expat include files are world readable,
+ just like the other header files. [Martin Kraemer]
+
+ *) Fixed generated AddModule adjustments in APACI's `configure' script
+ in order to allow (new) modules like mod_vhost_alias to be handled
+ correctly (which was touched by the adjustments for mod_alias).
+ [Ralf S. Engelschall]
+
+ *) For binary builds, add -R flag to apachectl to work around the lack of
+ an absolute path to the ./libexec directory where the libhttp.ep file
+ is needed for SHARED_CORE architectures. [Randy Terbush]
+
+ *) WIN32: Create the CGI script process as DETACHED. This may solve the
+ problem observed by some Win95/98 users where they get CGI script
+ output sent to the console. [Bill Stoddard]
+
+ *) Fix (re)naming in the uuencode/decode section. The ap/ap_
+ routines are now called ap_base64* and are 'plain' (i.e., no
+ pool access or anything clever). Inside util.c the routines acting
+ like pstrdup are called ap_pbase64encode() and ap_pbase64decode().
+ The oddly named ap_uuencode(), ap_uudecode() are kept around for
+ now but deprecated. [dirkx]
+
+ *) Clean up the base64 and SHA1 additions and make sure they are
+ represented in the ApacheCore.def, ApacheCoreOS2.def, and httpd.exp
+ files. [Roy Fielding]
+
+ *) WIN32: Migrate to InstallShield 5.5 and provide a bit more error
+ checking. Allow compiling on VS 6.0. [Randy Terbush]
+
+ *) Fixed assumption of absolute paths in binbuild.sh. [Tony Finch]
+
+ *) Use TestCompile to search for the truerand library (rather than blindly
+ assuming its existence). If it is not found, complain (but do not
+ exit - yet). [Martin Kraemer]
+
+ *) We forgot to add the new exported function names to
+ src/support/httpd.exp. [Bill Stoddard, Randy Terbush]
+
+ *) Add description of -T command-line option to usage().
+ [Ralf S. Engelschall]
+
+ *) For "some" platforms (notably, EBCDIC based ones), libos needs to be
+ searched only AFTER libap has been searched, because libap needs
+ some symbols from libos. [Martin Kraemer]
+
+ *) Fix conflict with original mod_digest related to the symbol of the
+ module dispatch list (which has to be unique for DSO and follow the
+ usual conventions for the installation procedure).
+ [Ralf S. Engelschall]
+
+ *) Add a dbm-library check for the "usual places" (-ldbm, -lndbm, -ldb)
+ for other platforms as well. [Martin Kraemer]
+
+ *) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG
+ types by AP_LONG and replace reference to renamed variable 'ubuf'
+ by 'buffer'. [Martin Kraemer]
+
+Changes with Apache 1.3.8 [not released]
+
+ *) Flush the output buffer immediately after sending an error or redirect
+ response, since the result may be needed by the client to abort a
+ long data transfer or restart a series of pipelined requests.
+ [Tom Vaughan , Roy Fielding]
+
+ *) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx.
+ [Ian Turner ] PR#4735
+
+ *) Local struct mmap in http_core.c conflicted with system structure
+ name on DYNIX -- changed to mmap_rec. [Roy Fielding] PR#4735
+
+ *) Added updated mod_digest as modules/experimental/mod_auth_digest.
+ [Ronald Tschalär ]
+
+ *) Fix a memory leak where the module counts were getting messed
+ up across restarts. [David Harris ]
+
+ *) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled
+ properly in mod_access.
+ ["Paul J. Reder" ] PR#4770
+
+ *) RewriteLock/RewriteMap didn't work properly with virtual hosts.
+ [Dmitry Khrustalev ] PR#3874
+
+ *) PORT: Support for compaq/tandem/com.
+ [Michael Ottati , dirkx]
+
+ *) Added SHA1 password encryption support to easy migration from
+ Netscape servers. See support/SHA1 for more information.
+ Caused the separation of ap_md5.c into md5, sha1 and a general
+ ap_checkpass.c with just a validate_passwd routine. Added a
+ couple of flags to support/htpasswd. Some reuse of the to64()
+ function; hence renamed to ap_to64().
+ [Dirk-Willem van Gulik, Clinton Wong ]
+
+ *) Change for EBCDIC platforms (TPF and BS2000) to correctly deal
+ with ASCII/EBCDIC conversions in "ident" query.
+ [David McCreedy ]
+
+ *) Get rid of redefinition warning on MAC_OS_X_SERVER platform.
+ Change "Power Macintosh" to Power* so if uname prints "Power Book"
+ we're still happy on Rhapsody platforms. [Wilfredo Sanchez]
+
+ *) Fix SIGSEGV on some systems because the Vary fix below included
+ a call to table_do with a variable argument list that was not
+ NULL terminated. Replaced with better implementation. [Roy Fielding]
+
+Changes with Apache 1.3.7 [not released]
+
+ *) The "Vary" response header field is now sanitised right before
+ the header is sent back to the client. Multiple "Vary" fields
+ are combined, and duplicate tokens (e.g., "Vary: host, host" or
+ "Vary: host, negotiate, host, accept-language") are reduced to
+ single instances. This is a better solution than the force-no-vary
+ one (which is still valid for clients that can't cope with Vary
+ at all). PR#3118 [Dean Gaudet, Roy Fielding, Ken Coar]
+
+ *) Portability changes for BeOS. [David Reid abb37@dial.pipex.com]
+
+ *) Link DSO's with "gcc -shared" instead of "ld -Bshareable" at
+ least on Linux and FreeBSD for now.
+ [Rasmus Lerdorf]
+
+ *) Win32: More apache -k restart work. Restarts are now honored
+ immediately and connections in the listen queue are -not- lost.
+ This is made possible by the use of the WSADuplicateSocket()
+ call. The listeners are opened in the parent, duplicated, then
+ the duplicates are passed to the child. The original listen sockets
+ are not closed by the parent across a restart, thus the listen queue
+ is preserved.
+ [Bill Stoddard ]
+
+ *) Fix handling of case when a client has sent "Expect: 100-continue"
+ and we are going to respond with an error, but get stuck waiting to
+ discard the body in the pointless hope of preserving the connection.
+ [Roy Fielding, Joe Orton ] PR#4499, PR#3806
+
+ *) Fix 'configure' to work correctly with SysV-based versions of
+ 'tr' (consistent with Configure's use as well). [Jim Jagielski]
+
+ *) apxs: Add "-S var=val" option which allows for override of CFG_*
+ built-in values. Add "-e" option which works like -i but doesn't
+ install the DSO; useful for editing httpd.conf with apxs. Fix
+ editing code so that multiple invocations of apxs -a will not
+ create duplicate LoadModule/AddModule entries; apxs can now be
+ used to re- enable/disable a module. [Wilfredo Sanchez]
+
+ *) Win32: Update the server to use Winsock 2. Specifically, link with
+ ws2_32.lib rather than wsock32.lib. This gives us access to
+ WSADuplcateSocket() in addition to some other enhanced comm APIs.
+ Win 95 users may need to update their TCP/IP stack to pick up
+ Winsock 2. (See http://www.microsoft.com/windows95/downloads/)
+ [Bill Stoddard stoddard@raleigh.ibm.com]
+
+ *) Win32: Redirect CGI script stderr (script debug info) into the
+ error.log when CGI scripts fail. This makes Apache on Win32
+ behave more like Unix.
+ [Bill Stoddard stoddard@raleigh.ibm.com]
+
+ *) Fixed `httpd' usage display: -D was missing.
+ [Ralf S. Engelschall] PR#4614
+
+ *) Fix `make r' test procedure in src/regex/: ap_isprint was not found.
+ [Ralf S. Engelschall] PR#4561, PR#4562
+
+ *) OS/2: Fix problem with accept lock semaphores where server would die with
+ "OS2SEM: Error 105 getting accept lock. Exiting!"
+ [Brian Havard] PR#4505
+
+ *) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms.
+ [Randy Terbush ]
+
+ *) Add the new mass-vhost module (mod_vhost_alias.c) developed and
+ used by Demon Internet, Ltd. [Tony Finch ]
+
+ *) Better GCC detection for DSO flags under Solaris 2 where the `cc'
+ command potentially _is_ GCC. [Ralf S. Engelschall]
+
+ *) Fix apxs build issues on AIX
+ [Rasmus Lerdorf ]
+
+ *) DocumentRoot Checking: Under previous versions, when Apache
+ first started up, it used to do a stat of each DocumentRoot to
+ see if it existed and was a directory. If not, then an error
+ message was printed. THIS HAS BEEN DISABLED. If DocumentRoot
+ does not exist, you will get error messages in error_log. If
+ the '-t' command line option is used (to check the configuration)
+ the check of DocumentRoot IS performed. An additional command
+ line option, '-T', has been added if you want to avoid the
+ DocumentRoot check even when checking the configuration.
+ [Jim Jagielski]
+
+ *) Win32: The query switch "apache -S" didn't exit after showing the
+ vhost settings. That was inconsistent with the other query functions.
+ [Bill Stoddard - Fixed by Martin on Unix in 1.3.4]
+
+ *) Win32: Changed behaviour of apache -k restart.
+ Previously, the server would drain all connections in the stack's
+ listen queue before honoring the restart. On a busy server, this
+ could take hours. Now, a restart is honored almost immediately.
+ All connections in Apache's queues are handled but connections in
+ the stack's listen queue are discarded. Restart triggered by
+ MaxRequestPerChild is unchanged.
+ [Bill Stoddard ]
+
+ *) Win32: Eliminated unnecessary call to wait_for_multiple_objects in
+ the accept loop. Good for a 5% performance boost. Cleaned up
+ parent/child process management code.
+ [Bill Stoddard ]
+
+ *) Added ceiling on file size for memory mapped files.
+ [John Giannandrea ] PR#4122
+
+ *) Fix ndbm.h include problems with brain-dead glibc >= 2.1 which
+ has ndbm.h in a non-standard db1/ subdir. PR#4431, PR#4528
+ [Henri Gomez , Ralf S. Engelschall]
+
+ *) Determine AP_BYTE_ORDER for ap_config_auto.h and already
+ use this at least for Expat. [Ralf S. Engelschall]
+
+ *) Allow .module files to specify libraries with Lib:.
+ [Ben Laurie]
+
+ *) Allow SetEnvIf[NoCase] to test environment variables as well
+ as header fields and request attributes. [Ken Coar]
+
+ *) Fix mod_autoindex's handling of ScanHTMLTitles when file
+ content-types are "text/html;parameters". PR#4524 [Ken Coar]
+
+ *) Remove "mxb" support from mod_negotiation -- it was a draft feature
+ never accepted into any standard, and it opens up certain DoS
+ attacks. [Koen Holtman ]
+
+ *) TestCompile updated. We can now run programs and output the
+ results during the Configure process. [ Jim Jagielski]
+
+ *) The source is now quad (long long) aware as needed. Specifically,
+ the Configure process determines the correct size of off_t and
+ *void. When the OS/platform/compiler supports quads, ap_snprintf()
+ provides for the 'q' format qualifier (if quads are not available,
+ 'q' is silently "demoted" to long). [Jim Jagielski]
+
+ *) When the username or password fed to htpasswd is too long, include the
+ size limit in the error message. Also report illegal characters
+ (currently only ':') in the username. Add the size restrictions
+ to the man page. [Ken Coar]
+
+ *) Fixed the configure --without-support option so it doesn't result in
+ an infinite loop. [Marc Slemko]
+
+ *) Piped error logs could cause a segfault if an error occured
+ during configuration after a restart.
+ [Aidan Cully ] PR#4456
+
+ *) If a "Location" field was stored in r->err_headers_out rather
+ than r->headers_out, redirect processing wouldn't find it and
+ the server would core dump on ap_escape_html(NULL). Check both
+ tables and raise HTTP_INTERNAL_SERVER_ERROR with a log message
+ if Location isn't set. [Doug MacEachern, Ken Coar]
+
+ *) Add RULE_EXPAT, the src/lib/ directory structure, and a modified copy
+ of the Expat 1.0.2 distribution. [Greg Stein]
+
+ *) Replace regexec() calls with calls to a new API stub function
+ ap_regexec(). This solves problems with DSO modules which use the regex
+ library. [Jens-Uwe Mager , Ralf S. Engelschall]
+
+ *) Add 'Request_Protocol' special keyword to mod_setenvif so that
+ environment variables can be set according to the protocol version
+ (e.g., HTTP/0.9 or HTTP/1.1) of the request. [Ken Coar]
+
+ *) Add DSO support for OpenStep (Mach 4.2) platform.
+ [Ralf S. Engelschall, Rex Dieter ] PR#3997
+
+ *) Fix sed regex for generating ap_config_auto.h in src/Configure.
+ [Jan Gallo ] PR#3690, PR#4373
+
+ *) Switch to /bin/sh5 in APACI on Ultrix and friends to avoid problems with
+ their brain-dead /bin/sh. [Ralf S. Engelschall] PR#4372
+
+ *) Better DSO flags recognition on NetBSD platforms using ELF.
+ [Todd Vierling ] PR#4310
+
+ *) Always log months in english format for %t in mod_log_config.
+ [Petr Lampa ] PR#4366, 679
+
+ *) Support for server-parsed and multiview-determined ReadmeName and
+ HeaderName files in mod_autoindex. Removed the restriction on
+ "/"s in ReadmeName and HeaderName directives since the *sub_req*
+ routines will deal with the access issues. (It's now possible to
+ have {site|group|project|customer|...} wide readmes and headers.)
+ [Raymond S Brand , Ken Coar] PR#1574, 3026, 3529,
+ 3569, 4256
+
+ *) When stat() fails, don't assume anything about the contents of
+ the struct stat. [Ed Korthof ]
+
+ *) It's OK for a semop to return EINTR, just loop around and try
+ again. [Dean Gaudet]
+
+ *) Fix configuration engine re-entrant hangups, which solve a
+ handful of problems seen with mod_perl configuration sections
+ [Salvador Ortiz Garcia ]
+
+ *) Mac OS and Mac OS X Server now use the appropriate custom layout
+ by default when building with APACI; allow for platform-specific
+ variable defaults in configure. [Wilfredo Sanchez]
+
+ *) Do setgid() before initgroups() in http_main; some platforms
+ zap the grouplist when setgid() is called. This was fixed in
+ suexec earlier, but the main httpd code missed the change.
+ [Rob Saccoccio ] PR#2579
+
+ *) Add recognition of .tgz as a gzipped tarchive.
+ [Bertrand de Singly ] PR#2364
+
+ *) mod_include's fsize/flastmod should allow only relative paths, just
+ like "include file". [Jaroslav Benkovsky ]
+
+ *) OS/2: Add support for building loadable modules using DLLs.
+ [Brian Havard]
+
+ *) Add iconsdir, htdocsdir, and cgidir to config.layout.
+ [Wilfredo Sanchez]
+
+ *) Fix minor but annoying bug with the test for Configuration.tmpl
+ being newer than Configuration so that it is less likely to fail
+ when using APACI and shadow sources. [Wilfredo Sanchez]
+
+ *) PORT: Add initial support for Mac OS (versions 10.0 and
+ greater). Use Mac OS X Server layout for now. Clean up dyld code
+ in unix/os.c, and don't install the dyld error handlers, which
+ are no longer needed in Mac OS. [Wilfredo Sanchez]
+
+ *) Rename Rhapsody layout to "Mac OS X Server". Change install
+ locations to appropriate ones for user-built (as opposed to
+ system) installs. [Wilfredo Sanchez]
+
+ *) Modify mod_autoindex's handling of AddDescription so that the
+ behaviour matches the documentation. [Ken Coar] PR#1898, 3072.
+
+ *) Add functionality to the install-bindist.sh script created by
+ binbuild.sh to use tar when copying distribution files to the
+ serverroot. This allows upgrading an existing installation
+ without nesting the new distribution in the old.
+
+ install-bindist.sh now detects the local perl5 path to install
+ apxs and dbmmanage with proper path to perl interpreter.
+
+ Add an install-binsupport target which copies the source files
+ for apxs and dbmmanage to bindist to allow these scripts to
+ be properly installed relative to the destination serverroot.
+ [Randy Terbush, Covalent Technologies, randy@covalent.net]
+
+ *) Fix intermittent SEGV in ap_proxy_cache_error() in
+ src/modules/proxy_util.c where a NULL filepointer and
+ temporary filename were closed and unlinked.
+ [Graham Leggett ,
+ Tim Costello ] PR#3178
+
+ *) Fix inconsistent error messages reported by mod_proxy.
+ [Graham Leggett ]
+
+ *) OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a
+ connection is aborted. [Brian Havard]
+
+ *) Force the LANG envariable to the known state of "C" so that we
+ have assurance about how string manipulators (e.g., tr) will
+ function. [Ken Coar] PR#1630
+
+ *) Add a directive to allow customising of the tracking cookie name.
+ [Ken Coar] PR#2921, 4303
+
+ *) Add "force-no-vary" envariable to allow servers to work around
+ clients that choke on "Vary" fields in the response header.
+ [Ken Coar, Dmitry Khrustalev ] PR#4118
+
+ *) Fixed a bug in mod_dir that causes a child process will infinitely
+ recurse when it attemps to handle a request for a directory wnd the
+ value of the DirectoryIndex directive is a single dot. Also likely
+ to happen for anyother values of DirectoryIndex that will map back
+ to the same directory. The handler now only considers regular files
+ as being index candidates. No PR#s found.
+ [Raymond S Brand ]
+
+ *) Ease configuration debugging by making TestCompile fall back to
+ using "make" if the $MAKE variable is unset [Martin Kraemer]
+
+ *) Fixed the ServerSignature directive to work as documented.
+ [Raymond S Brand ] PR#4248
+
+ *) Add "opt" (SysV-style) layout to config.layout. [Raymond S Brand
+ ]
+
+ *) Add APACI --without-execstrip option which can be used to disable the
+ stripping of executables on installation. This is very important for DSO
+ and debugging situations. [Ralf S. Engelschall]
+
+ *) Add support for OS/2 (case insenstive filesystem, .exe suffix, etc)
+ to APACI files and related scripts.
+ [Yitzchak Scott-Thoennes , Ralf S. Engelschall] PR#4269
+
+ *) Add support for standalone mode in TPF
+ [Joe Moenich ]
+
+ *) Fix number of bytes copied by read_connection() in src/support/ab.c
+ [Jim Cox ] PR#4271
+
+ *) Fix special RewriteCond "-s" pattern matching.
+ [Bob Finch ]
+
+ *) Fix value quoting in src/Configure script for ap_config_auto.h
+ [Paul Sutton ]
+
+ *) Make sure RewriteLock can be used only in the global context, (i.e.
+ outside of any sections) because it's a global facility of
+ the rewrite engine. [Ralf S. Engelschall]
+
+ *) Fix the ownership delegation for proxy directory under `make install'.
+ [Ralf S. Engelschall]
+
+ *) APACI would not correctly build suexec. [Maria Verina
+ ] PR#4260
+
+ *) mod_mime_magic passed only the first 4k of a file to
+ uncompress/gzip, but those tools sometimes do not produce
+ any output unless a sufficient portion of the compressed
+ file is input. Change to pass the entire file -- but
+ only read 4k of output.
+ [Marcin Cieslak ] PR#4097
+
+ *) "IndexOptions None" generated extra spaces at the end of each
+ line. [inkling@firstnethou.com] PR#3770
+
+ *) The "100 Continue" response wasn't being sent after internal
+ redirects. [Jose KAHAN ] PR#3910, 3806, 3575
+
+ *) When padding the name with spaces for display, mod_autoindex would
+ count &, <, and > in their escaped width, messing up the display.
+ [Dean Gaudet] PR#4075, 3758
+
+ *) PORT: fixed a compilation problem on NEXT.
+ [Jacques Distler ] PR#4130
+
+ *) r->request_time wasn't being set properly in certain error conditions.
+ [Dean Gaudet] PR#4156
+
+ *) PORT: deal with UTS compiler error in http_protocol.c
+ [Dave Dykstra ] PR#4189
+
+ *) Add ap_vrprintf() function. [John Tobey ] PR#4246
+
+ *) Fix the mod_mime hash table to work properly with locales other
+ than C. [Dean Gaudet] PR#3427
+
+ *) Fix a memory leak which is exacerbated by certain configurations.
+ [Dean Gaudet] PR#4225
+
+ *) Prevent clobbering saved IFS values in APACI. [Jim Jagielski]
+
+ *) Fix buffer overflows in ap_uuencode and ap_uudecode pointed out
+ by "Peter 'Luna' Altberg " and PR#3422
+ [Peter 'Luna' Altberg , Ronald Tschalär]
+
+ *) Make {Set,Unset,Pass}Env per-directory instead of per-server.
+ [Ben Laurie]
+
+ *) Correct an apparent typo: on the Windows and MPE platforms, the
+ htpasswd utility was limiting passwords to only 8 characters.
+ [Ken Coar]
+
+ *) EBCDIC platforms: David submitted patches for two bugs in the
+ MD5 digest port for EBCDIC machines:
+ a) the htdigest utility overwrote the old contents of the digest file
+ b) the Content-MD5 header value (ContentDigest directive) was wrong
+ when the returned file was not converted from EBCDIC, but was a
+ binary (e.g., image file) in the first place.
+ [David McCreedy ]
+
+ *) support/htpasswd now permits the password to be specified on the
+ command line with the '-b' switch. This is useful when passwords
+ need to be maintained by scripts -- particularly in the Win32
+ environment. [Ken Coar]
+
+ *) Win32: Win32 multiple services patch. Added capability to install and
+ run multiple copies of apache as individual services.
+
+ Example 1:
+ apache -n apache1 -i -f c:/httpd.conf
+ Installs apache as service 'apache1' and associates c:/httpd.conf
+ with that service.
+ net start apache1
+ Starts apache1 service.
+ net stop apache1
+ Stops apache1 service
+
+ Example 2:
+ apache -n apache2 -i
+ Installs apache as service 'apache2'. httpd.conf is located under
+ the default server root (/apache/conf/httpd.conf).
+ net start apache2
+ Starts apache2 service.
+
+ Example 3:
+ apache -n apache3 -i -d c:/program files/apache
+ Install apache as service 'apache3' and sets server root to
+ c:/program files/apache.
+
+ Example 4:
+ apache -n apache2 -k restart
+ Restart apache2 service
+
+ [Keith Wannamaker, Ken Parzygnat, Bill Stoddard]
+
+ *) Correct the signed/unsigned character handling for the MD5 routines;
+ mismatches were causing compilation problems with gcc -pedantic and
+ in the TPF cross-compilation. [Ken Coar]
+
+ *) OS/2: Rework CGI handling to use spawn*() instead of fork/exec, achieving
+ a roughly 5 fold speed up. [Brian Havard]
+
+ *) proxy ftp: instead of using the hardwired string "text/plain" as
+ a fallback type for files served by the ftp proxy, use the
+ ap_default_type() function to determine the configured type.
+ This allows for special configurations like
+
+ DefaultType gargle/blurb
+
+ Additionally, add the Content-Encoding: header to FTP proxy replies
+ when the encoding is defined (by the AddEncoding directive).
+ Because it was missing, it was almost impossible to browse compressed
+ files using the FTP proxy (works now perfectly in Communicator).
+ The ftp proxy now also returns the Date: and Server: header lines (if not
+ much else... This code is "somewhat" broken) like normal requests do.
+ [Martin Kraemer]
+
+ *) Be more smart in APACI's configure script when determining the UID/GID
+ for User/Group directives and use the determined UID/GID to initialize
+ the permissions on the proxycachedir.
+ [Dirk-Willem van Gulik, Ralf S. Engelschall]
+
+ *) Changed the forking-prior-to-cleanup in the proxy module to first
+ check wether it actually needs to collect garbage. This reduces
+ the number of fork()s from one/request to just the odd one an hour.
+ [Dirk-Willem van Gulik]
+
+ *) Added proxy, auth and header support to src/support/ab.c. Added a
+ README file to src/support/
+ [Dirk-Willem van Gulik]
+
+ *) Don't hard-code the path to AWK in --shadow bootstrapping Makefile.
+ [Ralf S. Engelschall] PR#4050
+
+ *) Add support for DSO module compilation on BSD/OS 3.x.
+ [Randy Terbush, Covalent Technologies]
+
+ *) Fix sed-substitutions in `make install': path elements like `httpd/conf'
+ (for instance from an APACI configure --sysconfdir=/etc/httpd/conf
+ option) were substituted with $(TARGET).conf, etc. Same for other strings
+ with dots where the dot wasn't matched as plain text.
+ [Ralf S. Engelschall]
+
+ *) PORT: Add support for FreeBSD 4.x [Ralf S. Engelschall]
+
+ *) Fix verbose output of APACI configure (option -v)
+ [Martin Kraemer, Ralf S. Engelschall]
+
+Changes with Apache 1.3.6
+
+ *) Removed new PassAllEnv code due to DSO problems. [Lars Eilebrecht]
+
+Changes with Apache 1.3.5 [not released]
+
+ *) M_INVALID needed a value within the scope of METHODS so that unknown
+ methods can be access controlled. [Roy Fielding] PR#3821
+
+ *) Added PassAllEnv; makes server's entire environment available
+ to CGIs and SSIs executed within directive's scope. [Ken Coar]
+
+ *) ap_uuencode() always added two trailing '='s and encoding of
+ 8 bit characters on a machine with signed char may produced
+ incorrect results. Additionally ap_uuencode() should now
+ work correctly on EBCDIC platforms.
+ [Ronald Tschalär ] PR#3411
+
+ *) WIN32: Binary installer now runs the configuration DLL before
+ the reboot prompt (which is only given if MSVCRT.DLL system
+ DLL is new or updated). This should avoid the configuration
+ directory being empty after installation. [Paul Sutton]
+ PR#3767, 3800, 3827, 3850, 3900, 3953, 3988
+
+ *) WIN32: Binary installer now creates Start menu options to start
+ and stop Apache as a console application and to uninstall
+ the Apache service on NT. [Paul Sutton] PR#3741
+
+ *) WIN32: Apache.exe now contains an icon. [Paul Sutton]
+
+ *) PORT: Switch back to using fcntl() locking on Linux -- instabilities
+ have been reported with flock() locking (probably related to kernel
+ version). [Dean Gaudet] PR#2723, 3531
+
+ *) Using APACI, the main config file (usually httpd.conf) was
+ not being adjusted as $(TARGET).conf. [Wilfredo Sanchez
+ ]
+
+ *) PORT: AIX does not require the SHARED_CODE "hack"
+ [Ryan Bloom ]
+
+ *) Set-Cookie headers were being doubled up for some CGIs by the O(n^2)
+ avoidance code added in 1.3.3.
+ [Dean Gaudet, Jeff Lewis ] PR#3872
+
+ *) ap_isxdigit was somehow neglected when adding the ap_isfoo() macros
+ for 8-bit safeness. [Dean Gaudet]
+
+ *) PORT: Use -fPIC instead of -fpic on Solaris and SunOS for compiling DSOs
+ because SPARCs have a small machine-specific maximum size for the Global
+ Offset Table which is often exceeded when compiling one of the larger
+ third-party modules with Apache. [Peter Urban ] PR#3977
+
+ *) Move the directive `ExtendedStatus' in httpd.conf-dist-win _after_ the
+ DSO/DLL section because it's a directive from mod_status and isn't
+ available before the DLL of mod_status is loaded.
+ [Martin POESCHL ] PR#3936
+
+ *) SECURITY: Fix a bug in the calculation of the buffer size for the line
+ continuation facility in Apache's configuration files which could
+ lead to a buffer overflow situation.
+ [Thomas Devanneaux ] PR#3617
+
+ *) Make documentation and error messages of APACI's --activate-module=FILE
+ option more clear. [Jan Wolter ] PR#3995
+
+ *) Fix the gcc version check (for enabling the `inline' facility) to
+ really support all future gcc versions >= 2.7 until we know more.
+ [John Tobey ] PR#3983
+
+ *) Let APACI's configure script correctly complain for unknown --enable-XXX
+ and --disable-XXX options. [Ralf S. Engelschall] PR#3958
+
+ *) Link the shared core bootstrap program (``Rule SHARED_CORE=yes'') also
+ against libap.a and use its ap_snprintf() instead of sprintf() to avoid
+ possible buffer overflows. [Ralf S. Engelschall]
+
+ *) Remove no longer used non-API function ap_single_module_init().
+ [Ralf S. Engelschall]
+
+ *) Add Apple's Mac OS X Server Layout "Rhapsody" to config.layout.
+ [Wilfredo Sanchez]
+
+ *) Add cgidir, htdocsdir, iconsdir variables to Makefile.tmpl in order
+ to make platform installations easier. [Wilfredo Sanchez]
+
+ *) In configure, do not append the target name to the directory path if
+ the path already contains "apache". [Ralf S. Engelschall]
+
+ *) SIGPIPE is now ignored by the server core. The request write routines
+ (ap_rputc, ap_rputs, ap_rvputs, ap_rwrite, ap_rprintf, ap_rflush) now
+ correctly check for output errors and mark the connection as aborted.
+ Replaced many direct (unchecked) calls to ap_b* routines with the
+ analogous ap_r* calls. [Roy Fielding]
+
+ *) Enhanced mod_rewrite's mapfile handling: The in-core cache for text and
+ DBM format mapfiles now uses a 4-way hash table with LRU functionality.
+ Furthermore map lookups for non-existent keys are now cached as well.
+ Additionally "txt" maps are now parsed with simple string functions
+ instead of using ap_pregcomp(). As a side effect a bug that prevented
+ the usage of keys containing the "," character was fixed.
+ The changes drastically improve the performance when large rewrite maps
+ are in use.
+ [Michael van Elst , Lars Eilebrecht] PR#3160
+
+ *) Added ap_sub_req_method_uri() for doing a subrequest with a method
+ other than GET, and const'd the definition of method in request_rec.
+ [Greg Stein]
+
+ *) Use proper pid_t type for saving PIDs in alloc.c. [John Bley]
+
+ *) Replaced use of WIN32 define with HAVE_DRIVE_LETTERS to indicate
+ when the OS allows a DOS drive letter within pathnames. [Brian Havard]
+
+ *) Add %V to mod_log_config, this logs the hostname according to the
+ UseCanonicalName setting (this is the pre-1.3.4 behaviour of
+ %v). Useful for mass vhosting. [Tony Finch ]
+
+ *) Add support for \n and \t to mod_log_config, can be used to produce
+ more reliable logs with multiline entries. [Tony Finch ]
+
+ *) Fixed a few compiler nits. [John Bley ]
+
+ *) Added informative error messages for failed munmap() and fseek() calls
+ in http_core.c. [John Bley, Roy Fielding]
+
+ *) Added some informative error messages for some failed malloc()
+ calls. [John Bley , Jim Jagielski]
+
+ *) OS/2 ap_os_canonical_filename()'s behaviour is improved: ap_assert()
+ is removed. This allows directives to work and
+ prevents invalid requests from killing the process.
+ [Brian Havard ]
+
+ *) Reorganised FAQ document.
+ [Joshua Slive ] PR#2497
+
+ *) src/support/: The ApacheBench benchmark program was overhauled by
+ David N. Welton: you can now have it generate an HTML TABLE, presumably
+ for integration into other HTML sources. David updated the ab man page
+ as well and added some missing descriptions. Thanks!
+ [David N. Welton ]
+
+ *) Win32: The filename validity checker now allows filenames containing
+ characters in the range 0x80 to 0xff (for example accented characters).
+ [Paul Sutton] PR#3890
+
+ *) Added conditional logging based upon environment variables to
+ mod_log_config. mod_log_referer and mod_log_agent
+ are now deprecated. [Ken Coar]
+
+ *) Allow apache acting as a proxy server to relay the real
+ reason of a failure to a client rather than the "internal
+ server error" it does currently. The general exposure mechanism
+ can be triggered by any module by setting the "verbose-error-to"
+ note to "*"; this allows more than just proxy errors to be exposed.
+ [Cliff Skolnick, Roy Fielding, Martin Kraemer] Related to PR#3455, 4086
+
+ *) Moved man pages for ab and apachectrl to section 8.
+ [Wilfredo Sanchez, Roy Fielding]
+
+ *) Added -S option to install.sh so that options can be passed to
+ strip on some platforms. [Ralf S. Engelschall, Wilfredo Sanchez]
+
+ *) Tweak modules Makefile generated by Configure so that it handles
+ the test case of no modules being selected. [chaz@reliant.com]
+
+ *) Added a sectioning directive that allows
+ the user to assign authentication control to any HTTP method that
+ is *not* given in the argument list; i.e., the logical negation
+ of the directive. This is particularly useful for controlling
+ access on methods unknown to the Apache core, but perhaps known by
+ some module or CGI script. [Roy Fielding, Tony Finch]
+
+ *) Prevent apachectl from complaining if the PIDFILE exists but
+ does not contain a process id, as might occur if the server is
+ being rapidly restarted. [Wilfredo Sanchez]
+
+ *) Win32: Add global symbols missing from ApacheCore.def. [Carl Olsen]
+
+ *) Entity tag comparisons for If-Match and If-None-Match were not being
+ performed correctly -- weak tags might cause false positives. Also,
+ strong comparison wasn't properly enforced in all cases.
+ [Roy Fielding, Ken Coar, Dean Gaudet] PR#2065, 3657
+
+ *) OS/2: Supply OS/2 error code instead of errno on semaphore errors.
+ [Brian Havard]
+
+ *) Work around a bug in Lynx regarding its sending "Negotiate: trans"
+ even though it doesn't understand TCN. [Koen Holtman, Roy Fielding]
+
+ *) Added ap_size_list_item(), ap_get_list_item(), and ap_find_list_item()
+ to util.c for parsing an HTTP header field value to extract the next
+ list item, taking into account the possible presence of nested comments,
+ quoted-pairs, and quoted-strings. ap_get_list_item() also removes
+ insignificant whitespace and lowercases non-quoted tokens.
+ [Roy Fielding] PR#2065
+
+ *) proxy: The various calls to ap_proxyerror() can return HTTP/1.1 status
+ code different from 500. This allows the proxy to, e.g., return
+ "403 Forbidden" for ProxyBlock'ed URL's. [Martin Kraemer] Related to PR#3455
+
+ *) Fix ordering of language variants for the case where the traditional
+ negotiation algorithm is being used with multiple language variants
+ and no Accept-Language. [James Treacy ] PR#3299, 3688
+
+ *) Do not round the TCN quality calculation to 5 decimal places,
+ unlike RFC 2296, because the calculation might need 12 decimal places
+ to get the right result. [Roy Fielding]
+
+ *) Remove unused code to disable transparent negotiation when
+ negotiating on encoding only, as we now handle encoding too
+ (though this is nonstandard for TCN), remove charset=ISO-8859-1
+ fiddle from the fiddle-averse RVSA comparison, and fix bugs in
+ some debugging statements within mod_negotiation. [Koen Holtman]
+
+ *) Fixed a rare memory corruption possibility in mod_dir if the index
+ file is negotiable and no acceptable variant can be found.
+ [Dean Gaudet, Roy Fielding, Martin Kraemer]
+
+ *) Win32: Add new config directive, ScriptInterpreterSource, to enable
+ searching the Win32 registry for script interpreters.
+ [Bill Stoddard]
+
+ *) Win32: The compiled-in default filename for the error log is now
+ error.log, which matches the default in the distributed httpd.conf.
+ [Paul Sutton]
+
+ *) Win32: Any error messages from -i or -u command line options are now
+ displayed on the console output rather than sent to the error log.
+ Also the "Running Apache..." message is not output unless Apache is
+ going to serve requests. [Paul Sutton]
+
+ *) Rework the MD5 authentication scheme to use FreeBSD's algorithm,
+ and use a private significator ('$apr1$') to mark passwords as
+ being smashed with our own algorithm. Also abstract the password
+ checking into a new ap_validate_password() routine. [Ken Coar]
+
+ *) Win32: The filename validity checker now allows "COM" but refuses
+ access to "COM1" through "COM4". This allows filenames such
+ as "com.name" to be served. [Paul Sutton] PR#3769.
+
+ *) BS2000: Adapt to the new ufork() system call interface which will
+ make subtasking easier on the OSD/POSIX mainframe environment.
+ [Martin Kraemer]
+
+ *) Add a compatibility define for escape_uri() -> ap_escape_uri() to
+ ap_compat.h. [David White ] PR#3725
+
+ *) Make NDBM file suffix determination for mod_rewrite more accurate, i.e.
+ use `.db' instead of `.pag' not only for FreeBSD, but also when
+ the NDBM library looks like Berkeley-DB based.
+ [Ralf S. Engelschall] PR#3773
+
+ *) Add ability to handle DES or MD5 authentication passwords.
+ [Ryan Bloom ]
+
+ *) Fix O(n^2) memory consumption in mod_speling. [Dean Gaudet]
+
+ *) SECURITY: Avoid some buffer overflow problems when escaping
+ quoted strings. (This overflow was on the heap and we believe
+ impossible to exploit.) [Rick Perry ]
+
+ *) Let src/Configure be aware of CFLAGS options starting with plus
+ signs as it's the case for the HP/UX compiler.
+ [Doug Yatcilla ] PR#3681
+
+ *) Remove the hard-wire of TAR=tar (we now check for gtar and gnutar first)
+ and check to see if the tar we wind up with supports '-h'.
+ [Jim Jagielski] PR#3671
+
+ *) A consistent and conservative style for all shell scripts has been
+ implemented. Basically, all shell string tests use the traditional
+ hack of 'if [ "x$var" != "x" ]' or 'if [ "x$var" = "xstring" ]'
+ to protect against bare null variable strings (ie: wrapping both
+ sides with double quotes and prepending 'x'). 'x' was chosen
+ because it's more universal and hopefully easier for old shell
+ prgrammers, as well as being easier to search for in 'vi' (/x\$) :)
+ [Jim Jagielski]
+
+ *) The status module now prints out both the main server generation as
+ well as the generation of each process. Also, the vhost info is
+ printed with '?notable'. [Jim Jagielski]
+
+ *) Move src/main/md5c.c to src/ap/ap_md5c.c; it's httpd-neutral
+ and this makes its functions available to things in src/support.
+ [Ken Coar]
+
+Changes with Apache 1.3.4
+
+ *) Renamed macros status_drops_connection to ap_status_drops_connection
+ and vestigial scan_script_header to ap_scan_script_header_err,
+ mostly for aesthetic reasons. [Roy Fielding]
+
+ *) The query switch "httpd -S" didn't exit after showing the
+ vhost settings. That was inconsistent with the other query functions.
+ [Martin Kraemer]
+
+ *) Moved the MODULE_MAGIC_COOKIE from before the versions and
+ filename to the end of the STANDARD_MODULE_STUFF. Its
+ presence at the beginning prevented reporting of the filename
+ for modules compiled before 1 January 1999. [Ken Coar]
+
+ *) SECURITY: ap_os_is_filename_valid() has been added to Win32
+ to detect and prevent access to special DOS device file names.
+ [Paul Sutton, Ken Parzygnat]
+
+ *) WIN32: Created new makefiles Makefile_win32.txt (normal build)
+ and Makefile_win32_debug.txt (debug build) that work on Win95.
+ Run each of the following from the src directory:
+ nmake /f Makefile_win32.txt # compiles normal build
+ nmake /f Makefile_win32.txt install # compiles and installs
+ nmake /f Makefile_win32.txt clean # removes compiled junk
+ nmake /f Makefile_win32_debug.txt # compiles debug build
+ nmake /f Makefile_win32_debug.txt install
+ nmake /f Makefile_win32_debug.txt clean
+ [Roy Fielding]
+
+ *) Added binbuild.sh and findprg.sh helpers to make it easier for us
+ to build binary distributions. [Lars Eilebrecht]
+
+ *) IndexOptions SuppressColumnSorting only turned off making
+ the column headers anchors; you could still change the display
+ order by manually adding a '?N=A' or similar query string to the
+ URL. Now SuppressColumnSorting locks in the sort order so
+ it can't be overridden this way. [Ken Coar]
+
+ *) Added IndexOrderDefault directive to supply a default sort order
+ for FancyIndexed directory listings. [Ken Coar] PR#1699
+
+ *) Change the ap_assert macro to a variant that works on all platforms.
+ [Richard Prinz ] PR#2575
+
+ *) Make sure under ELF-based NetBSD (now) and OpenBSD (future) we don't
+ search for an underscore on dlsym() (as it's already the case
+ for FreeBSD 3.0). [Todd Vierling ] PR#2462
+
+ *) Small fix for mod_env.html: The module was documented as to be _not_
+ compiled into Apache per default, although it _IS_ compiled into
+ Apache per default. [Sim Harbert ] PR#3572
+
+ *) Instead of fixing a bug in the generation procedure for config.status (a
+ backslash was missing) we remove the bug together with it's complete
+ context because the special cases of the past can now no longer occur
+ because of the recent magic for the --with-layout default.
+ [Ralf S. Engelschall] PR#3590
+
+ *) Make top-level Makefile aware of a parallel build procedures (make -j) by
+ making sure the src/support/ tools are _forced_ to be build last (they
+ depend on other libraries).
+ [Markus Theissinger ]
+
+ *) Fix installation procedure: Now that os-inline.c is actually used (a
+ recently fixed bug prevented this) we need to also install os-include.c
+ in addition to os.h into the PREFIX/include/ location or building of
+ module DSOs with APXS fails. [Ralf S. Engelschall] PR#3527
+
+ *) Added MODULE_MAGIC_COOKIE as the first field in a module structure to
+ allow us to distinguish between a garbled DSO (or even a file which isn't
+ an Apache module DSO at all) and a DSO which doesn't match the current
+ Apache API. [Ralf S. Engelschall] PR#3152
+
+ *) Two minor enhancements to mod_rewrite: First RewriteRule now also
+ supports the ``nocase|NC'' flag (as RewriteCond already does for ages) to
+ match case insensitive (this especially avoids nasty patterns like
+ `[tT][eE][sS][tT]'). Second two additional internal map functions
+ `escape' and `unescape' were added which can be used to escape/unescape
+ to/from hex-encodings in URLs parts (this is especially useful in
+ combination with map lookups).
+ [Magnus Bodin, Ian Kallen, Ralf S. Engelschall]
+
+ *) Renamed the macro escape_uri() to ap_escape_uri() which was
+ forgotten (because it was a macro) in the symbol renaming process.
+ [Ralf S. Engelschall]
+
+ *) Fix some inconsistencies related to the scopes of directives. The only
+ user visible change is that the directives `UseCanonicalName' and
+ `ContentDigest' now use the (more correct) `Options' scope instead of
+ (less correct) `AuthConfig' scope. [Ralf S. Engelschall]
+
+ *) Using DSO, the Server token was being mangled. Specifically, the
+ module's token was being added first before the Apache token. This
+ has been fixed. [Jim Jagielski]
+
+ *) Major overhaul of mod_negotiation.c, part 2.
+ - properly handle "identity" within Accept-Encoding.
+ - allow encoded variants in RVSA negotiation and let them appear in
+ the Alternates field using the non-standard "encoding" tag-list.
+ - fixed both negotiation algorithms so that an explicitly accepted
+ encoding is preferred over no encoding if "identity" is not
+ included within Accept-Encoding.
+ - added ap_array_pstrcat() to alloc.c for efficient concatenation
+ of large substring sequences.
+ - replaced O(n^2) memory hogs in mod_negotiation with ap_array_pstrcat.
+ [Roy Fielding]
+
+ *) Major overhaul of mod_negotiation.c, part 1.
+ - cleanups to mod_negotiation comments and code structure
+ - made compliant with HTTP/1.1 proposed standard (rfc2068) and added
+ support for everything in the upcoming HTTP/1.1
+ revision (draft-ietf-http-v11-spec-rev-06.txt).
+ - language tag matching also handles tags with more than 2
+ levels like x-y-z
+ - empty Accept, Accept-Language, Accept-Charset headers are
+ processed correctly; previously an empty header would make all
+ values acceptable instead of unacceptable.
+ - allowed for q values in Accept-Encoding
+ - added support for transparent content negotiation (rfc2295 and
+ rfc2296) (though we do not implement all features in these drafts,
+ e.g. no feature negotiation). Removed old experimental version.
+ - implemented 'structured entity tags' for better cache correctness
+ (structured entity tags ensure that caches which can deal with Vary
+ will (eventually) be updated if the set of variants on the server
+ is changed)
+ - this involved adding a vlist_validator element to request_rec
+ - this involved adding the ap_make_etag() function to the global API
+ - modified guessing of charsets used by Apache negotiation algorithm
+ to guess 'no charset' if the variant is not a text/* type
+ - added code to sort multiviews variants into a canonical order so that
+ negotiation results are consistent across backup/restores and mirrors
+ - removed possibility of a type map file resolving to another type map
+ file as its best variant
+ [Koen Holtman, Roy Fielding, Lars Eilebrecht] PR#3451, 3299, 1987
+
+ *) RFC2396 allows the syntax http://host:/path (with no port number)
+ but the proxy disallowed it (ap_proxy_canon_netloc()).
+ [David Kristol ] PR#3530
+
+ *) When modules update/modify the file name in the configfile_t structure,
+ syntax errors will report the updated name, not the original one.
+ [Fabien Coelho ] PR#3573
+
+ *) Correct some filename case assumptions from WIN32 to
+ CASE_BLIND_FILESYSTEM. [Brian Havard ]
+
+ *) For %v log ServerName regardless of the UseCanonicalName
+ setting (similarly for %p). [Dean Gaudet]
+
+ *) Configure was initializing the variables $OSDIR, $INCDIR and $SHELL
+ rather late (too late for some invocations of TestCompile).
+ This improves the make environment available to TestCompile and
+ the *.module scripts. [Martin Kraemer]
+
+ *) The hashbang emulation code in ap_execve.c would interpret
+ #!/hashbang/scripts correctly, but failed to fall back to a
+ standard shell for scripts which did NOT start with #!
+ Now SHELL_PATH is started in these cases. [Martin Kraemer]
+
+ *) PORT: Added the Cyberguard V2 port [Richard Stagg ]
+ PR#3336
+
+ *) Update APXS manual page: some -q option arguments were missing
+ and another was incorrect. [Mark Anderson ] PR#3553
+
+ *) Cleanup the command line options: `-?' was documented to show
+ the usage list but does it with an error because `?' is not a valid
+ command. OTOH a lot of users expect `-h' to print such a usage list and
+ instead are annoyed for ages by our huge unreadable list of directives.
+ So we now changed the command line options this way:
+ 1. `-L' => `-R'
+ Intent: we need `-L' to be free, and `-R' for the DSO run-time path is
+ very similar to the popular linker option.
+ 2. `-h' => `-L'
+ Intent: while -l gives the small list of modules, -L now gives the
+ large list of directives implemented by these modules. This is also
+ consistent with -v (short version info) and -V (large version info).
+ 3. `-?' => `-h'
+ Intent: it's now the expected option ;-)
+ The manual page was adjusted accordingly.
+ [Ralf S. Engelschall] PR#2714
+
+ *) Fixed problem of fclose() on an unopened file in suexec if LOG_EXEC
+ wasn't defined. [Rick Franchuk ]
+
+ *) Removed recently introduced bugs and disfigurements in APACI:
+ o fixed argument line processing: using $args was broken: It was not
+ initialized and using args="$args $apc_option" and even args="$args
+ \"$apc_option\"" fails in the second processing round for any arguments
+ containing whitespaces. The only correct way is to use the construct
+ "$@" (but not possible here) or iterate _both_ times over the implicit
+ argument line (no argument to for-loop) which is what we now use.
+ o make --with-layout=Apache the default without creating
+ redundancy (copying the --with-layout block in the argument parsing
+ loop). We achieve this by using the "$@" construct together with the
+ `set' command to prepend --with-layout=Apache to the command line in
+ case --with-layout is not used.
+ o fixed auto-suffix handling now that config.layout exists.
+ Paths which are auto-suffixed are marked with a trailing plus sign in
+ config.layout and every path now can be marked this way (not only the
+ four paths for which we do it currently). Additionally the suffix is
+ no longer a static one. Instead it's now `/' where is
+ the argument of the --target option or per default `httpd'.
+ o allow also tabs (and only spaces) where we match whitespaces
+ o various fixes and cleanups related to used shell coding style
+ o made Jim happy by replacing `Written by' with `Initially written by' ;-)
+ o trimmed output of --help to fit into 80 columns
+ [Ralf S. Engelschall]
+
+ *) Added two new core API functions, ap_single_module_configure() and
+ ap_single_module_init(), which are now used by mod_so to configure a module
+ after loading. [Ralf S. Engelschall]
+
+ *) PORT: Add defines for USE_FLOCK_SERIALIZED_ACCEPT and
+ SINGLE_LISTEN_UNSERIALIZED_ACCEPT to NetBSD/OpenBSD section
+ of ap_config.h to allow serialized accept for multiport listens.
+ [Roy Fielding, Curt Sampson] PR#3120
+
+ *) PORT: Fixed a misplaced #endif for NetBSD/OpenBSD section
+ of ap_config.h that would skip several defines if DEFAULT_GROUP
+ was overridden. [Roy Fielding]
+
+ *) PORT: The I86 version of DGUX has support for strncasecmp and
+ strcasecmp, so allow it in ap_config.h. [Amiel Lee Yee] PR#3247
+
+ *) Fix ordering of definitions in ap_config.h so that ap_inline is
+ defined before it might be used. [Victor Khimenko]
+
+ *) PORT: Add Dynamic Shared Object (DSO) support for BSDI (v4.0).
+ [Tom Serkowski ] PR#3453
+
+ *) Make generation of src/Configuration.apaci more robust: It failed to
+ differenciate between modules when one module name was a postfix of
+ another (e.g. cgi vs. fastcgi). We now check for mod_XXX, libXXX and even
+ just XXX (think about totally non-standard names like "apache_ssl", too).
+ [Ralf S. Engelschall] PR#3380
+
+ *) In src/Configure remove the SERVER_SUBVERSION support (already deprecated
+ since 1.3b7) and make whitespace handling more robust (it failed horrible
+ when whitespaces were present in the arguments of -D options).
+ [Ralf S. Engelschall] PR#3240
+
+ *) Add APACI --shadow=DIR variant (in addition to --shadow). This now first
+ creates an external package shadow tree in DIR before the local build
+ shadow tree is generated under DIR. This way one can have the extracted
+ Apache distribution tree read-only on NFS or CDROM and still build Apache
+ from these sources. An automatically triggered VPATH-like mechanism is
+ provided through the TOP variable, too.
+ [Ralf S. Engelschall, Wilfredo Sanchez ]
+
+ *) Fix negotiation so that a Vary response header is correctly
+ generated when, for a particular dimension, variants only vary
+ in having or not having a value for that dimension. [Paul Sutton]
+
+ *) Fix negotiation so that we prefer an encoded variant over an
+ unencoded variant if the user-agent explicitly says it can
+ accept that encoding. Previously we always preferred the unencoded
+ variant.
+ [Paul Ausbeck , Paul Sutton] PR#3447
+
+ *) Fix APXS tool: query variables LIBS_SHLIB and TARGET were not recognized
+ and the usage page was inconsistent with the functionality and manpage.
+ [Ralf S. Engelschall]
+
+ *) Allow special options -Wc,xxx and -Wl,xxx on APXS compile/link command.
+ They can occur multiple times and their arguments (`xxx') are passed AS
+ IS to the compiler/linker command. [Ralf S. Engelschall]
+
+ *) Fixed possible (but harmless in practice) bug in the DBM lookup
+ procedure of mod_rewrite: very long keys were truncated.
+ [Ralf S. Engelschall]
+
+ *) Added a generic --with-layout=[FILE:]ID option. ID here is a layout
+ identifier, currently "Apache" and "GNU" are pre-defined in the file
+ config.layout. Custom layouts are possible by using FILE:ID as the
+ argument where the layout ID is taken from FILE.
+
+ The config.layout file consists of .. sections
+ where inside those sections "path_variable: path_value" pairs can be
+ specified. These lines are converted to path_variable='path_value'.
+
+ *) Add a DefaultLanguage directive so that files missing a language
+ extension (e.g., .fr, .de) can be labelled as being some other
+ default language. DefaultLanguage can appear in and
+ containers as well as .htaccess files. [Paul Sutton]
+ PR#1180
+
+ *) Fix TARGET configuration when configuring and installing using
+ APACI configure. TARGET now defines the basename of the configuration
+ file, startup script, manual page, etc. log_error_core() now reports
+ the server binary name given by argv[0]. TARGET can now also be defined
+ with --target=TARGET parameter passed to APACI configure.
+ [Ralf Engelschall, Randy Terbush]
+
+ *) mod_include.c:handle_perl() now properly tests for OPT_INCNOEXEC
+ rather than OPT_INCLUDES [Rainer Schoepf ]
+
+ *) ap_md5_binary() was using sprintf() rather than a table lookup
+ to convert binary bytes to hex digits.
+ [Ronald Tschalär ] PR#3409
+
+ *) Fix SEGV in TCN negotiation if no variants are acceptable.
+ [Martin Plechsmid ] PR#1987
+
+ *) API: ap_exists_config_define() function is now "public" [Doug MacEachern]
+
+ *) Fix documentation of `Action' directive: It can activate a CGI script
+ when either a handler or a MIME content type is triggered by the request.
+ [Andrew Pimlott ] PR#3340
+
+ *) Document the `add' command of `dbmmanage' in `dbmmanage.1' manpage.
+ [David MacKenzie ] PR#3394
+
+ *) Ignore a "ErrorDocument 401" directive with a full URL and write a
+ notice to the error log. It is not possible to send a 401 response
+ and a redirect at the same time. [Lars Eilebrecht]
+
+ *) Fallback to native compilers for IRIX-32 platform. It seems that
+ a gcc 2.8.1 compiled apache is logging client addresses with all
+ bits set (255.255.255.255). This is the second such problem caused
+ by gcc 2.8.1 compiler. The first being broken semaphore locking.
+ [Randy Terbush]
+
+ *) Updated mime.types to reflect current Internet media types
+ and include a URL to the registry.
+ [Manoj Kasichainula, Roy Fielding] PR#2380, 2286, 2246
+
+ *) SECURITY: Do a more complete check in mod_include to avoid
+ an infinite loop of recursive SSI includes. [Marc Slemko] PR#3323
+
+ *) Add APACI --suexec-docroot and --suexec-logfile options which can be
+ used to set the document root directory (DOC_ROOT) and the suexec
+ logfile (LOG_EXEC), respectively. Additionally the --layout option
+ was changed to show more information about the suEXEC setup.
+ [Lars Eilebrecht] PR#3316, 3357, 3361
+
+ *) Added the last two WebDAV status codes of 424 (Failed Dependency)
+ and 507 (Insufficient Storage) for use by third-party modules.
+ [Roy Fielding]
+
+ *) Enabled all of the WebDAV method names for use by third-party
+ modules, Limit, and Script directives. That includes PATCH,
+ PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, and UNLOCK.
+ Improved mod_actions.c so that it can use any of the methods
+ defined in httpd.h. Added ap_method_number_of(method) for
+ getting the internal method number. [Roy Fielding]
+
+ *) PORT: Add a port to the TPF OS. [Joe Moenich and
+ others at IBM]
+
+ *) Fix problems with handling of UNC names (e.g., \\host\path)
+ on Win32. [Ken Parzygnat ]
+
+ *) Rework os_canonical_*() on Win32 so it's simpler, more
+ robust, and works. [Ken Parzygnat ]
+ PR#2555, 2915, 3064, 3232
+
+ *) Work around incomplete implementation of strftime on Win32.
+ [Manoj Kasichainula, Ken Parzygnat ]
+
+ *) Move a typedef to fix compile problems on Linux with 1.x kernels.
+ [Manoj Kasichainula] PR#3177
+
+ *) PORT: Add a port to the Concurrent PowerMAX OS. [Tom Horsley
+ ]
+
+ *) WIN32: Log more explicit error messages if spawning an interpreted
+ script failed, including the command line used to attempt to execute
+ the interpreter and the Win32 error code returned. [Marc Slemko]
+
+ *) Disable sending of error-notes on a 500 (Internal Server Error) response
+ since it often includes file path info. Enable sending of error-notes
+ on a 501 (Method Not Implemented). [Roy Fielding] PR#3173
+
+ *) http_config.c would respond with 501 (Method Not Implemented) if a
+ content type handler was specified but could not be found, which
+ should have been a 500 response. Likewise, mod_proxy.c would responsd
+ with a 501 if the URI scheme is unrecognized instead of the correct
+ response of 403 (Forbidden). [Roy Fielding]
+
+ *) SECURITY: Eliminate DoS attack when a bad URI path contains what
+ looks like a printf format escape. [Marc Slemko, Studenten Net Twente]
+
+ *) Fix in mod_autoindex: for files where the last modified time stamp was
+ unavailable, an empty string was printed which was 2 bytes short.
+ The size and description columns were therefore not aligned correctly.
+ [Martin Kraemer] (no PR#)
+
+ *) Update BS2000 OS code to work with recent versions. Starting with
+ release A17, the child fork() must be replaced by a _rfork().
+ (BS2000 only) [Martin Kraemer]
+
+ *) Add the actual server_rec structure of the specific Vhost to the
+ scoreboard file and avoid a string copy (as well as allow some
+ further future enhancements). [Harrie Hazewinkel
+ ]
+
+ *) Add APACI --permute-module=foo:bar option which can be used to
+ on-the-fly/batch permute the order of two modules (mod_foo and mod_bar)
+ in the Configuration[.apaci] file. Two special and important variants are
+ supported for the option argument: first BEGIN:foo which permutes module
+ mod_foo with the begin of the module list, i.e. it `moves' the module to
+ the begin of the list (gives it lowest priority). And second foo:END
+ which permutes mod_foo with the end of the module list, i.e. it `moves'
+ the module to the end of the list (gives it highest priority).
+ [Ralf S. Engelschall]
+
+ *) Fix problem with 'apache -k shutdown' and startup event
+ synchronisation (Win32). [Ken Parzygnat ]
+ PR#3255
+
+ *) The config parser wasn't correctly noticing a missing '>'
+ on container start lines (e.g., it wouldn't spot
+ "]
+ PR#3279
+
+ *) Add a 'RemoveHandler' directive which will selectively remove
+ all handler associations for the specified file extensions.
+ [Ryan Bloom ] PR#1799.
+
+ *) Properly handle & allow "nul" and ".*/null" in AccessConfig and
+ ResourceConfig directives on Win32. Also add a note to the effect
+ of 'useless User directive ignored on Win32' to the errorlog if
+ a User directive is encountered on Win32.
+ [Ken Parzygnat ] PR#2078, 2303.
+
+ *) Fix multiple whitespace handling in imagemaps for mod_imap which was
+ broken since Apache 1.3.1 where we took out compressing of multiple
+ spaces in ap_cfg_getline().
+ [Ivan Richwalski ] PR#3249
+
+ *) Fix Berkeley-DB/2.x support in mod_auth_db: The data structures were not
+ initialized correctly and the db_open() call used an invalid mode
+ parameter. [Ron Klatchko ] PR#3171
+
+ *) PORT: DSO support for UnixWare 7
+ [Ralf S. Engelschall, Ron Record ]
+
+ *) Merge the contents of the {srm,access}.conf-dist* files into the
+ httpd.conf-dist* files. The srm and access files now contain
+ only comments, and httpd.conf has all the combined contents in
+ a rational order. [Ken Coar]
+
+ *) PORT: DSO/ELF support for FreeBSD 3.0.
+ [Ralf S. Engelschall, Dirk Froemberg ]
+
+ *) Add a "default-handler" handler that calls the default_hander()
+ function which is normally called for static content. This allows
+ you to override a specific handler. [Marc Slemko]
+
+ *) Further simplify checking for absolute paths by replacing an
+ hard-coded syntax check with a call to a routine we already created to
+ do this. [Ken Parzygnat ] PR#2976, 3074
+
+ *) Log an error if we encounter a malformed "require" directive
+ in mod_auth if we know that we know that no other module can
+ deal with it. [Marc Slemko]
+
+ *) Remove ap_private_extern method of hiding conflicting symbols
+ on the NEXT platform because it is not correct for all versions,
+ and the versions for which it is correct are unknown.
+ [Wilfredo Sanchez ]
+
+ *) Fix inheritance of IndexOptions NameWidth and remove unintended
+ restriction on +NameWidth, +IconHeight, and +IconWidth. [Ken Coar]
+
+ *) Fix per-directory config merging for cases in which a 500 error
+ is encountered in an .htaccess file somewhere down the tree.
+ [Ken Coar] PR#2409
+
+ *) Minor performance improvement to ap_escape_html(). [Roy Fielding]
+
+ *) Fixed a segmentation violation in mod_proxy when a response is
+ non-cachable. [Roy Fielding, traced by Doug Bloebaum]. PR#2950, 3056
+
+Changes with Apache 1.3.3
+
+ *) Added a complete implementation of the Expect header field as
+ specified in rev-05 of HTTP/1.1. Disabled the 100 Continue
+ response when we already know the final status, which is mighty
+ useful for PUT responses that result in 302 or 401. [Roy Fielding]
+
+ *) Remove extra trailing whitespace from the getline results as part
+ of the protocol processing, which is extra nice because it works
+ between continuation lines, is almost no cost in the normal case
+ of no extra whitespace, and saves memory. [Roy Fielding]
+
+ *) Added new HTTP status codes and default response bodies from the
+ revised HTTP/1.1 (307, 416, 417), WebDAV (102, 207, 422, 423), and
+ HTTP Extension Framework (510) specifications. Did not add the
+ WebDAV 424 and 425 codes because they are bogus. We don't use any
+ of these codes yet, but they are now available to 3rd-party modules.
+ [Roy Fielding]
+
+ *) Fix a possible race condition between timed-out requests and the
+ ap_bhalfduplex select that might result in an infinite loop on
+ platforms that do not validate the descriptor. [Roy Fielding]
+
+ *) WIN32: Add "-k shutdown" and "-k restart" options to signal a
+ running Apache server [Paul Sutton]
+
+ *) Fix mod_autoindex bug where directories got a size of "0k" instead
+ of "-". [Martin Plechsmid , Marc Slemko]
+ PR#3130
+
+ *) PORT: DRS 6000 machine. [Paul Debleecker ]
+
+ *) Add the server signature text (from the core ServerSignature directive)
+ to the list of envariables available to scripts, SSI, and the like.
+ [Ken Coar]
+
+ *) PORT: Fix sys/resource.h handling for SCO 3.x platform.
+ [M. Laak ] PR#3108
+
+ *) Fallback from sysconf-based to plain HZ-based `ticks per second'
+ calculation in mod_status for all systems which don't have POSIX
+ sysconf() (like UTS 2.1) and not only for the NEXT platform.
+ [Dave Dykstra ] PR#3055
+
+ *) Fix `require ...' directive parsing in mod_auth, mod_auth_dbm and
+ mod_auth_db by using ap_getword_white() (which uses ap_isspace())
+ instead of ap_getword(..., ' ') (which parses only according to spaces
+ but not tabs). [James Morris ,
+ Ralf S. Engelschall] PR#3105
+
+ *) Fix the SERVER_NAME variable under sub-request situations (where
+ `UseCanonicalName off' is used) like CGI's called from SSI pages or
+ RewriteCond variables by adopting r->hostname to sub-requests.
+ [James Grinter ] PR#3111
+
+ *) Fix stderr redirection under syslog-based error logging situation.
+ [Youichirou Koga ] PR#3095
+
+ *) Document `ErrorLog syslog:facility' variant of error logging.
+ [Youichirou Koga ] PR#3096
+
+ *) Fix http://localhost/ hints in top-level INSTALL document.
+ [Rob Jenson , Ralf S. Engelschall] PR#3088
+
+ *) Quote paths in default configuration files. [Wilfredo Sanchez]
+
+ *) PORT: Remove extra HAVE_SYS_RESOURCE_H define for RHAPSODY since
+ it is now taken care of properly by the header file tests.
+ [Wilfredo Sanchez ]
+
+ *) Fix problem with scripts and filehandle inheritance on Win32.
+ [Ken Parzygnat ] PR#2884, 2910
+
+ *) Win32 name canonicalisation could end up using the server's
+ working directory to fill in some blanks. [Ken Parzygnat
+ ] PR#3001
+
+ *) Correct invalid assumption by ap_sub_req_lookup_file() that all
+ absolute paths begin with "/" -- because they don't on Win32.
+ [Ken Parzygnat ] PR#2976, 3074
+
+ *) Add [REDIRECT_]VARIANTS environment variable to mod_speling
+ so that ErrorDocument 300 processors can reformat the list
+ if desired. [Ken Coar] PR#2859
+
+ *) Add +/- incremental prefixes to IndexOptions keywords, and
+ enable merging of multiple IndexOptions directives. [Ken Coar]
+
+ *) PORT: Allow GuessOS to recognize Unixware 7.0.1 [Steve Cameron
+ ]
+
+ *) Reconstructed the loop through multiple htaccess file names so
+ that missing files are not confused with unreadable files.
+ [Roy Fielding]
+
+ *) The ap_pfopen and ap_pfdopen routines were failing to protect the
+ errno on an error, which leads to one error being mistaken for
+ another when reading non-existent .htaccess files.
+ [Jim Jagielski]
+
+ *) OS/2: The new header tests get things right, need to update
+ ap_config.h. [Brian Havard]
+
+ *) The Perl %ENV hash will now be setup by default when using the
+ mod_include `perl' command [Doug MacEachern]
+
+ *) PORT: Add Pyramid DC/OSx support to configuration mechanism.
+ [Earle Ake ]
+
+ *) PORT: Fix sys/resource.h handling for Amdahl's UTS 2.1
+ [Dave Dykstra ] PR#3054
+
+ *) Correct comment in mod_log_config.c about its internals.
+ [Elf Sternberg ]
+
+ *) Avoid possible line overflow in Configure: Use an awkfile to
+ handle the creation of modules.c [Jim Jagielski]
+
+Changes with Apache 1.3.2
+
+ *) Fix bug in ap_remove_module(), which caused problems for dso's
+ who were the top_module. [Doug MacEachern]
+
+ *) Add support for Berkeley-DB/2.x (in addition to Berkeley-DB/1.x) to
+ mod_auth_db to both be friendly to users who wants to use this version
+ and to avoid problems under platforms where only version 2.x is present.
+ [Dan Jacobowitz , Ralf S. Engelschall]
+
+ *) When using ap_log_rerror(), make the error message available to the
+ *ERROR_NOTES envariables by default. [Ken Coar]
+
+ *) BS2000 platform only: get rid of the nasty BS2000AuthFile.
+ You now must define a BS2000Account name for the server User.
+ This has fewer security implications than the old approach.
+ [Martin Kraemer]
+
+ *) Fix SHARED_CORE feature for HPUX platform: We now use extension `.sl'
+ instead of `.so' and `SHLIB_PATH' instead of `LD_LIBRARY_PATH' on this
+ platform to make the braindead HPUX linker happy. Notice, for the module
+ DSOs we don't have to use this, because these are loaded manually (and
+ not via HPUX' dld). [Ralf S. Engelschall] PR#2905, PR#2968
+
+ *) Remove 64 thread limit on Win32.
+ [Bill Stoddard ]
+
+ *) Remove redundant substitutions in top-level Makefile.tmpl.
+ [Ralf S. Engelschall]
+
+ *) Fix APACI's `Group' configuration adjustment - especially for Linux
+ platforms where `nogroup' exists in /etc/group. [Ralf S. Engelschall]
+
+ *) Make PrintPath work generically instead of having one version
+ strictly for OS/2. [Jim Jagielski, Brian Havard]
+
+ *) Fix the recently introduced C header file checking: We now use the C
+ pre-processor pass only (and no longer the complete compiler pass) to
+ determine whether a C header file exists or not. Because only this way
+ we're safe against inter-header dependencies (which caused horrible
+ portability problems). The only drawback is that we now have a CPP
+ configuration variable which has to be determined first (we do a similar
+ approach as GNU Autoconf does here). When all fails the user still has
+ the possibility to override it manually via APACI or src/Configuration.
+ As a fallback for the header check itself we can directly check the
+ existance of the file under /usr/include, too.
+ [Ralf S. Engelschall] PR#2777
+
+ *) PORT: Added RHAPSODY (Mac OS X Server) support. MAP_TMPFILE defined
+ as an alternate mechanism for mmap'd shared memory for RHAPSODY.
+ ap_private_extern defined to hide symbols that conflict with loaded
+ dynamic libraries on the NEXT and RHAPSODY platforms.
+ [Wilfredo Sanchez ]
+
+ *) Delete PID file on clean shutdowns.
+ [Charles Randall ] PR#2947
+
+ *) Fix mod_auth_*.html documents: NSCA -> NCSA
+ [Youichirou Koga ] PR#2991
+
+ *) Fix INSTALL document: www.gnu.ai.mit.edu -> www.gnu.org
+ [Karl Berry ] PR#2994
+
+ *) Fix dbmmanage.1 manual page.
+ [Youichirou Koga ] PR#2992
+
+ *) Fix possible buffer overflow situation in suexec.c.
+ [Jeff Stewart ] PR#2790
+
+ *) Add some more LIBS for the SCO5 platform which are needed for the already
+ used -lprot. It's actually a bug in SCO5, of course.
+ [Ronald Record ] PR#2533
+
+ *) Fix documentation of ProxyPass/ProxyPassReverse according to the
+ trailing slash problem. [Jon Drukman ] PR#2933
+
+ *) Remove `-msym' option from LDFLAGS_SHLIB for the Digital UNIX (OSF/1)
+ platform, because it's only supported under version 4.0 and higher. But
+ because our GuessOS is still unaware of Digital UNIX versions and the
+ -msym is just to optimize the DSO statup time a little bit it's safe and
+ best when we leave it out now. [Ralf S. Engelschall] PR#2969
+
+ *) Fix the ap_log_error_old(), ap_log_unixerr() and ap_log_printf()
+ functions: First all three functions no longer fail on strings containing
+ "%" chars and second ap_log_printf() no longer does a double-formatting
+ (instead it directly passes through the message to be formatted to the
+ real internal formatting function). [Ralf S. Engelschall] PR#2941
+
+ *) Allow "Include" directives anywhere in the server config
+ files (but not .htaccess files). [Ken Coar] PR#2727
+
+ *) The proxy was refusing to serve CONNECT requests except to
+ port 443 (https://) and 563 (snews://). The new AllowCONNECT
+ directive allows the configuration of the ports to which a
+ CONNECT is allowed. [Sameer Parekh, Martin Kraemer]
+
+ *) mod_expires will now act on content that is not sent from a file
+ on disk. Previously it would never add an Expires: header to
+ any response that did not come from a file on disk; the only
+ case where it still doesn't (and can't) add one for that type of
+ content is if you are using a modification date based setting.
+ [Marc Slemko, Paul Phillips ]
+
+ *) Problems encountered during .htaccess parsing or CGI execution
+ that lead to a "500 Server Error" condition now provide explanatory
+ text (in the *ERROR_NOTES envariable) to ErrorDocument 500 scripts.
+ [Ken Coar] PR#1291
+
+ *) Add NameWidth keyword to IndexOptions directive so that the
+ width of the filename column is customisable. [Ken Coar, Dean Gaudet]
+ PR#1949, 2324.
+
+ *) Recognize lowercase _and_ uppercase `uname' results under
+ SCO OpenServer. [David Coelho ]
+
+ *) As duplicate "HTTP/1.0 200 OK" lines within the header seem to be
+ a common problem of (mis-administrated?) IIS servers, make the apache
+ proxy immune to these errors (and ignore the duplicates, but log
+ the fact to error_log). [Martin Kraemer], after the proposal in PR#2914
+
+ *) The ] PR#2866
+
+ *) Replace the inlined information grabbing stuff for the configuration
+ adjustment feature (no --without-confadjust) with calls to a new helper
+ script `buildinfo.sh' which is both more flexible and already proofed to
+ be more robust against platform differences. This mainly fixes the
+ recently occured ``sed: command garbled: ...'' problems.
+ [Ralf S. Engelschall] PR#2776, PR#2848
+
+ *) Make ab.c again pass ``gcc -Wall -Wshadow -Wpointer-arith -Wcast-align
+ -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline''
+ without complains after we recently added the POST feature.
+ [Ralf S. Engelschall]
+
+ *) Renamed is_HTTP_xxx() macros to ap_is_HTTP_xxx() name. They are used inside
+ modules as API functions and we forgot them at the big symbol renaming.
+ [Ralf S. Engelschall]
+
+ *) Remove bad reference to non-existing SERVER_VERSION in mod_rewrite.html
+ [Youichirou Koga ] PR#2895
+
+ *) Dynamically size the filename column of mod_autoindex output.
+ [Dean Gaudet]
+
+ *) Add the ability to do POST requests to the ab benchmarking tool.
+ [Kurt Sussman ] PR#2871
+
+ *) Bump up MAX_ENV_FLAGS in mod_rewrite.h from the too conservatice limit of
+ 5 to 10 because there are some users out there who always have 5 to 8
+ variables in one RewriteRule and had to patch mod_rewrite.h for every
+ release. So 15 should be now more than enough, even for them. (I never
+ needed more than 4 in my RewriteRules ;-)
+ [Ralf S. Engelschall]
+
+ *) Make the proxy generate and understand Via: headers
+ [Martin Kraemer]
+
+ *) Change the proxy to use tables instead of array_headers for
+ the header lines. [Martin Kraemer]
+
+ *) Make sure the config.status file is not overridden when just
+ ``configure --help'' is used. [Ralf S. Engelschall] PR#2844
+
+ *) Split MODULE_MAGIC_NUMBER into _MAJOR/_MINOR numbers. This should
+ provide a way to trace API changes that add functionality but do
+ not create a compatibility issue for precompiled modules, etc.
+ See include/ap_mmn.h for more details. [Randy Terbush]
+
+ *) Fix suexec installation under `make install root=xxx' situation.
+ [Ralf S. Engelschall]
+
+ *) Extend the output of the -V switch to include the paths of all
+ compiled-in configuration files, if they were overridden at
+ compile time, for least astonishment of the user.
+ [Martin Kraemer]
+
+ *) When READing a request in ExtendedStatus mode, the "old"
+ vhost, request and client information is not displayed.
+ [Jim Jagielski]
+
+ *) STATUS is no longer available. Full status information now
+ run-time configurable using the ExtendedStatus directive.
+ [Jim Jagielski]
+
+ *) SECURITY: Eliminate O(n^2) space DoS attacks (and other O(n^2)
+ cpu time attacks) in header parsing. Add ap_overlap_tables(),
+ a function which can be used to perform bulk update operations
+ on tables in a more efficient manner. [Dean Gaudet]
+
+ *) SECURITY: Added compile-time and configurable limits for
+ various aspects of reading a client request to avoid some simple
+ denial of service attacks, including limits on maximum request-line
+ size (LimitRequestLine), number of header fields (LimitRequestFields),
+ and size of any one header field (LimitRequestFieldsize). Also added
+ a configurable directive LimitRequestBody for limiting the size of the
+ request message body. [Roy Fielding]
+
+ *) Make status module aware of DNS and logging states, even if
+ STATUS not defined. [Jim Jagielski]
+
+ *) Fix a problem with the new OS/2 mutexes. [Brian Havard]
+
+ *) Enhance mod_speling so that CheckSpelling can be used in
+ containers and .htaccess files. [Ken Coar]
+
+ *) API: new ap_custom_response() function for hooking into the
+ ErrorDocument mechanism at runtime [Doug MacEachern]
+
+ *) API: new ap_uuencode() function [Doug MacEachern]
+
+ *) API: scan_script_header_err_core() now "public" and renamed
+ ap_scan_script_header_err_core() [Doug MacEachern]
+
+ *) The 'status' module will now show the process pid's and their
+ state even without full STATUS accounting. [Jim Jagielski]
+
+ *) Restore the client IP address to the error log messages, this
+ was lost during the transition from 1.2 to 1.3. Add a new
+ function ap_log_rerror() which takes a request_rec * and
+ formats it appropriately. [Dean Gaudet] PR#2661
+
+ *) Cure ap_cfg_getline() of its nasty habit of compressing internal
+ whitespace in input lines -- including within quoted strings.
+ [Ken Coar]
+ but leading and trailing whitespace should continue to be
+ stripped [Martin Kraemer]
+
+ *) Cleanup of the PrintPath/PrintPathOS2 helper functions. Avoid
+ the ugly use of an env. variable and use command-line args for
+ alternate $PATH. Make more like advanced 'type's as well.
+ [Jim Jagielski]
+
+ *) The IRIXN32 Rule was being ignored. Configure now correctly adds
+ -n32 only if IRIXN32 says to. [Jim Jagielski, Alain St-Denis
+ ] PR#2736
+
+ *) Clean up a warning in mod_proxy. [Ralf S. Engelschall]
+
+ *) Renamed __EMX__ (internal define of the gcc port under OS/2) to OS2
+ following the same idea as "MSVC vs WIN32". Additionally the src/os/emx/
+ directory was renamed to src/os/os2/ for consistency.
+ [Brian Havard, Ralf S. Engelschall]
+
+ *) Add new Rule SHARED_CHAIN which can be used to enable linking of DSO
+ files (here modules) against other DSO files (here shared libraries).
+ This is done by determining a subset of LIBS which can be safely used for
+ linking the DSOs, i.e. PIC libs and shared libs. Currently the rule is
+ disabled for all platforms to avoid problems with this (experimental)
+ rule. But we provide it now for those people how ran into problems and
+ want to came out by forcing linking against DSOs.
+ [Ralf S. Engelschall] PR#2587
+
+ *) Fix suEXEC start message: Has to be of `notice' level to really get
+ printed together with the standard startup message because the `notice'
+ level is handled special inside ap_log_error() for startup messages.
+ [Ralf S. Engelschall] PR#2761 PR#2761 PR#2765
+
+ *) Add correct `model' MIME types from RFC2077 to mime.types file.
+ [Ralf S. Engelschall] PR#2732
+
+ *) Fixed examples in mod_rewrite.html document.
+ [Youichirou Koga , Ralf S. Engelschall] PR#2756
+
+ *) Allow ap_read_request errors to propagate through the normal request
+ handling loop so that the connection can be properly closed with
+ lingering_close, thus avoiding a potential TCP reset that would
+ cause the client to miss the HTTP error response. [Roy Fielding]
+
+ *) One more portability fix for APACI shadow tree support: Swap order of awk
+ and sed in top-level configure script to avoid sed fails on some
+ platforms (for instance SunOS 4.1.3 and NCR SysV) because of the
+ non-newline-termined output of Awk. [Ralf S. Engelschall] PR#2729
+
+ *) PORT: NEC EWS4800 support.
+ [MATSUURA Takanori ]
+
+ *) Fix a segfault in the proxy on OS/2. [Brian Havard]
+
+ *) Fix Win32 part of ap_spawn_child() by providing a reasonable child_info
+ structure instead of just NULL. This fixes at least the RewriteMap
+ programs under Win32. [Marco De Michele ] PR#2483
+
+ *) Add workaround to top-level `configure' script for brain dead
+ `echo' commands which interpet escape sequences per default.
+ [Ralf S. Engelschall] PR#2654
+
+ *) Make sure that the path to the Perl interpreter is correctly
+ adjusted under `make install' also for the printenv CGI script.
+ [Ralf S. Engelschall] PR#2595
+
+ *) Update the mod_rewrite.html document to correctly reflect the situation
+ of the `proxy' (`[P]') feature. [Ralf S. Engelschall] PR#2679
+
+ *) Fix `install-includes' sub-target of `install' target in top-level
+ Makefile.tmpl: The umask+cp approach didn't work as expected (especially
+ for users which extracted the distribution under 'umask 077'), so replace
+ it by an explicit cp+chmod approach.
+ [Richard Lloyd, Curt Sampson, Ralf S. Engelschall] PR#2656 PR#2626
+
+ *) Fix `distclean' and `clean' targets in src/Makefile.tmpl to have same
+ behavior and to cleanup correctly even under enabled SHARED_CORE rule.
+ [Ralf S. Engelschall]
+
+ *) Use a more straight forward and thus less problematic Sed command in
+ src/helper/mkdir.sh script. [Ralf S. Engelschall]
+
+ *) Make sure the `configure' scripts doesn't fail when trying to guess the
+ domainname of the machine and there are multiple `domainname' and
+ `search' entries in /etc/resolv.conf.
+ [Ralf S. Engelschall] PR#2710
+
+ *) Add note about the SHARED_CORE requirement on some platforms also to the
+ INSTALL file because a lot of users don't read htdocs/manual/dso.html
+ first. [Ralf S. Engelschall] PR#2701
+
+ *) Fix document "hyperlink" for dso.html in src/Configuration.tmpl
+ [Knut A.Syed ] PR#2674
+
+ *) Modify mod_rewrite to update the Vary response field if the URL rewriting
+ engine does any manipulations or decisions based upon request fields.
+ [Ken Coar] PR#1644
+
+ *) Document the special APACI behavior for installation paths where
+ ``/apache'' is appended to paths under some (well defined, of course)
+ situations to prevent pollution of system locations with Apache files.
+ [Ralf S. Engelschall] PR#2660
+
+ *) Fixed problem with buffered response message not being sent for
+ the read_request error conditions of URI-too-long (414) and
+ malformed header fields (400). [Roy Fielding] PR#2646
+
+ *) Add support for the Max-Forwards: header line required by RFC2068 for
+ the TRACE method. This allows apache to TRACE along a chain of proxies
+ up to a predetermined depth. [Martin Kraemer]
+
+ *) Fix SHARED_CORE rule: The CFLAGS_SHLIB variable is no longer doubled
+ (compilers complained) and the .so.V.R.P filename extension was adjusted
+ to correctly reflect the 1.3.2 version.
+ [Ralf S. Engelschall] PR#2644
+
+ *) SECURITY: Plug "..." and other canonicalization holes under OS/2.
+ [Brian Havard]
+
+ *) PORT: implement serialized accepts for OS/2. [Brian Havard]
+
+ *) mod_include had problems with the fsize and flastmod directives
+ under WIN32. Fix also avoids the minor security hole of using
+ ".." paths for fsize and flastmod.
+ [Manoj Kasichainula ] PR#2355
+
+ *) Fixed some Makefile dependency problems. [Dean Gaudet]
+
+Changes with Apache 1.3.1
+
+ *) Disable the incorrect entry for application/msword in the
+ mod_mime_magic "magic" file because it also matches other Office
+ documents. [Ralf S. Engelschall] PR#2608
+
+ *) Fix broken RANLIB handling in src/Configure (the entry from
+ src/Configuration.tmpl was ignored) and additionally force RANLIB to
+ /bin/true under HP/UX where ranlib exists but is deprecated.
+ [Ralf S. Engelschall] PR#2627
+
+ *) 'apachectl status' failed on some systems.
+ [Steve VanDevender , Lars Eilebrecht] PR#2613
+
+ *) Add new flags for ap_unparse_uri_components() to make it generate
+ the scheme://sitepart string only, or to omit the query string.
+ [Martin Kraemer]
+
+ *) WIN32: Canonicalize ServerRoot before checking to see if it
+ is a valid directory. The failure to do this caused certain
+ ServerRoot settings (eg. "ServerRoot /apache") to be improperly
+ rejected. [Marc Slemko]
+
+ *) Global renaming of C header files to both get rid of conflicts with third
+ party packages and to again reach consistency:
+ 1. conf.h -> ap_config.h
+ 2. conf_auto.h -> ap_config_auto.h \ these are now merged
+ 3. ap_config.h -> ap_config_auto.h / in the config process
+ 4. compat.h -> ap_compat.h
+ 5. apctype.h -> ap_ctype.h
+ Backward compatibility files for conf.h and compat.h were created.
+
+ *) mod_mmap_static will no longer take action on requests unless at
+ least one "mmapfile" directive is present in the configuration.
+ This experimental module has to do some black magic to operate
+ inside the current API and thus creates side-effects for other
+ modules under some circumstances.
+ [Ralf S. Engelschall]
+
+ *) Add conservative ticks around more egrep arguments in top-level configure
+ to avoid problems under brain-dead platforms like Digital UNIX (OSF1).
+ [Ralf S. Engelschall] PR#2596
+
+ *) mod_rewrite created RewriteLock files under the UID of the parent
+ process, thus the child processes had no write access to the files.
+ Now a chown() is done on the file to the uid of the children,
+ if applicable. [Lars Eilebrecht, Ralf S. Engelschall] PR#2341
+
+ *) Autogenerate some HAVE_XXXXX_H defines in conf_auto.h (determined via
+ TestCompile) instead of defining them manually in conf.h based on less
+ accurate platform definitions. This way we no longer have to fiddle with
+ OS-type and/or OS-version identifiers to discover whether a system header
+ file exists or not. Instead we now directly check for the existence of
+ those esoteric ones.
+ [Ralf S. Engelschall] PR#2093, PR#2361, PR#2377, PR#2434,
+ PR#2524, PR#2525, PR#2533, PR#2569
+
+ *) mod_setenvif (BrowserMatch* and friends) will now match a missing
+ field with "^$". [Ken Coar]
+
+ *) Set the RTLD_GLOBAL dlopen mode parameter to allow dynamically loaded
+ modules to load their own modules dynamically. This improves mod_perl
+ and mod_php3 when these modules are loaded dynamically into Apache.
+ [Rasmus Lerdorf]
+
+ *) Cache a proxied request in the event that the client cancels the
+ transfer, provided that the configured percentage of the file has
+ already been transfered. It works for HTTP transfers only. The
+ new configuration directive is called CacheForceCompletion.
+ [Glen Parker ] PR#2277
+
+ *) Add the "]
+
+ *) Fix yet another signal-based race condition involving nested timers.
+ Signals suck. [Dean Gaudet]
+
+ *) suexec's error messages have been clarified a little bit. [Ken Coar]
+
+ *) Clean up some, but perhaps not all, 8-bit character set problems
+ with config file parsing, and URL parsing. We now define
+ ap_isdigit(), ap_isupper(), ... which cast to an (unsigned char).
+ This should work on most modern unixes.
+ [Dean Gaudet] PR#800, 2282, 2553 (and others)
+
+ *) The "handler not found" error was issued in cases where the handler
+ really did exist, but was just declining to serve the request.
+ [John Van Essen ] PR#2529
+
+ *) Add Dynamic Shared Object (DSO) support for SCO5 (OpenServer 5.0.x).
+ [Ronald Record ] PR#2533
+
+ *) The APACI libexecdir was not extended with an "apache/" subdir
+ if the installation prefix didn't already contain "apache", but
+ it should be because the DSO files are Apache-specific. Now
+ libexecdir is treated the same way sysconfdir, datadir, localstatedir
+ and includedir are already treated.
+ [Charles Levert ] PR#2551
+
+ *) The parsing routine was incorrectly treating methods as
+ case-insensitive. [Ken Coar]
+
+ *) The ap_bprintf() code neglected to test if there was an error on
+ the connection. ap_bflush() misdiagnosed a failure as a success.
+ [Dean Gaudet]
+
+ *) add support for #perl arg interpolation in mod_include
+ [Doug MacEachern]
+
+ *) API: Name changes of table_elts to ap_table_elts, is_table_empty
+ to ap_is_table_empty and bgetflag to ap_bgetflag. [Ben Laurie]
+
+ *) PORT: Add UnixWare 7 support
+ [Vadim Kostoglodoff ] PR#2463
+
+ *) Fix the Guess-DSO-flags-from-Perl stuff in src/Configure: "perl" was
+ used instead of "$PERL" which contains the correctly determined Perl
+ interpreter (important for instance on systems where "perl" and "perl5"
+ exists, like BSDI or FreeBSD, etc).
+ [Ralf S. Engelschall] PR#2505
+
+ *) Move the initial suEXEC-related startup message from plain
+ fprintf()/stderr to a delayed ap_log_error()-based one to avoid problems
+ when Apache is started from inetd (instead of standalone). Under this
+ situation startup messages on stderr lead to problems (the line is sent
+ to the client in front of the requested document).
+ [Ralf S. Engelschall] PR#871, PR#1318
+
+ *) Add a flag so ap_fnmatch() can be used for case-blind pattern matching.
+ [Ken Coar, Dean Gaudet]
+
+ *) WIN32: Don't collapse multiple slashes in PATH_INFO.
+ [Ben Laurie, Bill Stoddard ] PR#2274
+
+ *) WIN32 SECURITY: Eliminate trailing "."s in path components. These are
+ ignored by the Windows filesystem, and so can be used to bypass security.
+ [Ben Laurie, Alexei Kosut].
+
+ *) We now attempt to dump core when we get SIGILL. [Jim Jagielski]
+
+ *) PORT: remove broken test for MAP_FILE in http_main.c.
+ [Wilfredo Sanchez ]
+
+ *) PORT: Change support/apachectl to use "kill -0 $pid" to test if the
+ httpd is running. This should be more portable than figuring out
+ which of three dozen different versions of "ps" are installed.
+ [a cast of dozens]
+
+ *) WIN32: If we can't figure out how to execute a file in a script
+ directory, bail out of the request with an error message. [W G Stoddard]
+
+ *) WIN32 SECURITY: Eliminate directories consisting of three or more dots;
+ these are treated by Win32 as if they are ".." but are not detected by
+ other machinery within Apache. This is something of a kludge but
+ eliminates a security hole. [Manoj Kasichainula, Ben Laurie]
+
+ *) Move ap_escape_quotes() from src/ap to src/main/util.c; it uses
+ pools and thus pollutes libap (until the pool stuff is moved there).
+ [Ken Coar]
+
+ *) IndexIgnore should be case-blind on Win32 (and any other case-aware
+ but case-insensitive platforms). New #define for this added to conf.h
+ (CASE_BLIND_FILESYSTEM). [Ken Coar] PR#2455
+
+ *) Enable DSO support for OpenBSD in general, not only for 2.x, because it
+ also works for OpenBSD 1.x. [Ralf S. Engelschall]
+
+ *) PORT: Fix compilation problem on ARM Linux.
+ [Sam Kington ] PR#2443
+
+ *) Let APACI's configure script determine some configuration parameters
+ (Group, Port, ServerAdmin, ServerName) via some intelligent tests to
+ remove some of the classical hurdles for new users when setting up
+ Apache. This is done per default because it is useful for the average
+ user. Package authors can use the --without-confadjust option to disable
+ these configuration adjustments.
+ [Ralf S. Engelschall]
+
+ *) Added an EXTRA_DEPS configuration parameter which can be used
+ to add an extra Makefile dependency for the httpd target, for instance
+ to external third-party libraries, etc.
+ [Ralf S. Engelschall]
+
+ *) Add .. sections to the core module (with same spirit
+ as .. sections) which can be used to skip or process
+ contained commands dependend of ``-D PARAMETER'' options on the command
+ line. This can be used to achieve logical conditions like instead of physically ones (e.g. )
+ and thus especially can be used for conditionally loading DSO-based
+ modules via LoadModule, etc. [Ralf S. Engelschall]
+
+ *) PORT: clean up a warning in mod_status for OS/2. [Brian Havard]
+
+ *) Make table elements const. This may prevent obscure errors. [Ben Laurie]
+
+ *) Fix parsing of FTP `SIZE' responses in proxy module: The newline was not
+ truncated which forced following HTTP headers to be data in the HTTP
+ reponse. [Ralf S. Engelschall, Charles Fu ]
+ PR#2412, 2367
+
+ *) Portability fix for APACI shadow tree support: Swap order of awk and sed
+ in top-level configure script to avoid sed fails on some platforms (for
+ instance SunOS 4.1.3 and NCR SysV) because of the non-newline-termined
+ output of Awk. [Bill Houle ] PR#2435
+
+ *) Improve performance of directory listings (mod_autoindex) by comparing
+ integer keys (last-modified and size) as integers rather than converting
+ them to strings first. Also use a set of explicit byte tests rather
+ than strcmp() to check for parent directory-ness of an entry. Oh, and
+ make sure the parent directory (if displayed) is *always* listed first
+ regardless of the sort key. Overall performance winnage should be good
+ in CPU time, instruction cache, and memory usage, particularly for large
+ directories. [Ken Coar]
+
+ *) Add a tiny but useful goody to APACI's configure script: The generation
+ of a config.status script (as GNU Autoconf does) which remembers the used
+ configure command and hence can be used to restore the configuration by
+ just re-running this script or for remembering the configuration between
+ releases.
+ [Ralf S. Engelschall]
+
+ *) Add httpd -t (test) option for running configuration syntax tests only.
+ If something is broken it complains and exits with a return code
+ non-equal to 0. This can be used manually by the user to check the Apache
+ configuration after editing and is also automatically used by apachectl
+ on (graceful) restart command to make sure Apache doesn't die on restarts
+ because of a configuration which is now broken since the last (re)start.
+ This way `apachectl restart' can be used inside cronjobs without having
+ to expect Apache to be falling down. Additionally the httpd -t can be run
+ via `apachectl configtest'.
+ [Ralf S. Engelschall] PR#2393
+
+ *) Minor display fix for "install" target of top-level Makefile:
+ the displayed installation command was incorrect although the
+ executed command was correct. Now they are in sync.
+ [Ralf S. Engelschall] PR#2402
+
+ *) Correct initialization of variable `allowed_globals' in http_main.c
+ [Justin Bradford ] PR#2400
+
+ *) Apache would incorrectly downcase the entire Content-Type passed from
+ CGIs. This affected server-push scripts and such which use
+ multipart/x-mixed-replace;boundary=ThisRandomString.
+ [Dean Gaudet] PR#2394
+
+ *) PORT: QNX update to properly guess 32-bit systems.
+ [Sean Boudreau ] PR#2390
+
+ *) Make sure the DSO emulation code for HPUX finds the proprietary shl_xxx()
+ functions which are in libdld under HPUX 9/10.
+ [Ralf S. Engelschall] PR#2378
+
+ *) Make sure the "install" target of the top-level Makefile doesn't break
+ because of a return code of 1 from an "if" (for instance under braindead
+ Ultrix the result code of an "if" construct is 1 if the "then" clause
+ didn't match). [Ralf S. Engelschall]
+
+ *) Add an additional "dummy" target to the "$(LIB)" target in generated
+ modules/xxx/Makefile's to avoid problems with SVR4 Make under "full-DSO"
+ situation (no libxxx.a built, only mod_xxx.so's) where LIB and OBJS are
+ empty. [Ralf S. Engelschall, Dean Gaudet, Martin Kraemer]
+
+ *) Replace two bad sprintf() calls with ap_snprintf() variants in
+ mod_rewrite. [Ralf S. Engelschall]
+
+ *) Fix missing usage description for MetaFiles directive.
+ [David MacKenzie ] PR#2384
+
+ *) mod_log_config wouldn't let vhosts use log formats defined in the
+ main server. [Christof Damian ] PR#2090
+
+ *) mod_usertrack was corrupting the client hostname. As part of the
+ fix, the cookie values were slightly extended to include the
+ fully qualified hostname of the client.
+ [Dean Gaudet] PR#2190, 2229, 2366
+
+ *) Fix a typo in pool debugging code. [Alvaro Martinez Echevarria]
+
+ *) mod_unique_id did not work on alpha linux (in general on any
+ architecture that has 64-bit time_t).
+ [Alvaro Martinez Echevarria]
+
+ *) PORT: Make SCO 5 (and probably 3) compile again. [Ben Laurie]
+
+ *) PORT: NCR MPRAS systems have the same bug with SIGHUP restart that
+ Solaris systems experience. So define WORKAROUND_SOLARIS_BUG.
+ [Klaus Weber ] PR#1973
+
+ *) Change "Options None" to "Options FollowSymLinks" in the
+ section of the default access.conf-dist
+ (and -win even though it doesn't matter there). This has better
+ performance, and more intuitive semantics. [Dean Gaudet]
+
+ *) PORT: Updated support for UTS 2.1.2.
+ [Dave Dykstra ] PR#2320
+
+ *) Fix symbol export list (src/support/httpd.exp) after recent
+ API changes in the child spawning area.
+ [Jens-Uwe Mager ]
+
+ *) Workaround for configure script and old `test' commands which do not
+ support the -x flag (for instance under platforms like Ultrix). This is
+ solved by another helper script findprg.sh which searches for Perl and
+ Awk like PrintPath but _via different names_.
+ [Ralf S. Engelschall]
+
+ *) Remove the system() call from htpasswd.c, which eliminates a system
+ dependancy. ["M.D.Parker" ] PR#2332
+
+ *) PORT: Fix compilation failures on NEXTSTEP.
+ [Rex Dieter ] PR#2293, 2316
+
+ *) PORT: F_NDELAY is a typo, should have been FNDELAY. There's also
+ O_NDELAY on various systems. [Dave Dykstra ] PR#2313
+
+ *) PORT: helpers/GuessOS updates for various versions for NCR SVR4.
+ [juerg schreiner ,
+ Bill Houle ] PR#2310
+
+ *) Fix recently introduced Win32 child spawning code in mod_rewrite.c which
+ was broken because of invalid ap_pstrcat() -> strcat() transformation.
+ [Ralf S. Engelschall]
+
+ *) Proxy Cache Fixes: account for directory sizes, fork off garbage collection
+ to continue in background, use predefined types (off_t, size_t, time_t),
+ log the current cache usage percentage at LogLevel debug
+ [Martin Kraemer, based on discussion between Dean Gaudet & Dirk vanGulik]
+
+Changes with Apache 1.3.0
+
+ *) Using a type map file as a custom error document was not possible.
+ [Lars Eilebrecht] PR#1031
+
+ *) Avoid problems with braindead Awks by additionally searching for gawk
+ and nawk in APACI's configure script.
+ [Dave Dykstra , Ralf S. Engelschall] PR#2319
+
+ *) Rename md5.h to ap_md5.h to avoid conflicts with native MD5 on
+ some systems. [Randy Terbush]
+
+ *) Change usage of perror()+fprintf(stderr,...) in mod_rewrite to
+ more proper ap_log_error() variants.
+ [Ralf S. Engelschall]
+
+ *) Make sure the argument for the --add-module option to APACI's configure
+ script is of type [path/to/]mod_xxx.c because all calculations inside
+ configure and src/Configure depend on this.
+ [Ralf S. Engelschall] PR#2307
+
+ *) Changes usage of perror/fprintf to stderr to more proper ap_log_error
+ in mod_mime, mod_log_referer, mod_log_agent, and mod_log_config.
+ [Brian Behlendorf]
+
+ *) Various OS/2 cleanups ["Brian Havard"