Newer
Older
*) new `GprofDir' directive when compiled with -DGPROF, where gprof can
plop gmon.out profile data for each child [Doug MacEachern]
*) Use the construct ``"$@"'' instead of ``$*'' in the generated
config.status script to be immune against arguments with whitespaces.
*) 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
*) Dynamically size the filename column of mod_autoindex output.
[Dean Gaudet]
*) Add the ability to do POST requests to the ab benchmarking tool.
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
*) 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]
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
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
*) 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
<Directory> 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
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
*) 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 <y-koga jp.FreeBSD.org>, 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.
*) 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 <mdemichele tin.it>] PR#2483
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
*) 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
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
*) 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.
*) 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 <stevev darkwing.uoregon.edu>, Lars Eilebrecht] PR#2613
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
*) 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 transferred. It works for HTTP transfers only. The
new configuration directive is called CacheForceCompletion.
*) Add the "<!DOCTYPE HTML" magic cookie used by modern documents (and
required by HTML 3.2 and later) to mod_mime_magic's conf/magic.
*) 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.
*) Add Dynamic Shared Object (DSO) support for SCO5 (OpenServer 5.0.x).
*) 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.
*) The <Limit> 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
*) 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.
*) 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.
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
*) 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.
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
*) 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 <IfDefine>..</IfDefine> sections to the core module (with same spirit
as <IfModule>..</IfModule> 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 <IfDefine
ReverseProxy> instead of physically ones (e.g. <IfModule mod_proxy.c>)
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
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
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
*) 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
*) 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.
*) 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.
*) mod_log_config wouldn't let vhosts use log formats defined in the
*) 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.
*) Change "Options None" to "Options FollowSymLinks" in the
<Directory /> 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.
*) Fix symbol export list (src/support/httpd.exp) after recent
API changes in the child spawning area.
*) 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
*) PORT: Fix compilation failures on NEXTSTEP.
*) PORT: F_NDELAY is a typo, should have been FNDELAY. There's also
O_NDELAY on various systems. [Dave Dykstra <dwd bell-labs.com>] PR#2313
*) PORT: helpers/GuessOS updates for various versions for NCR SVR4.
[juerg schreiner <j.schreiner zh.ch>,
Bill Houle <Bill.Houle SanDiegoCA.NCR.COM>] 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.
*) 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" <brianh kheldar.apana.org.au>]
*) PORT: QNX needed a #include <sys/mman.h>; and now it uses flock
serialized accept to handle multiple sockets.
*) Have NT properly set the directory for CGI scripts
(& other spawned children)
*) Propagate environment to CGI scripts correctly in Win32.
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
*) Some symbol renaming:
ap_spawn_child_err became ap_spawn_child
ap_spawn_child_err_buff became ap_bspawn_child
spawn_child was obsoleted and moved to compat.h
[Brian Behlendorf]
*) Upgrade the child spawning code in mod_rewrite for the RewriteMap
programs: ap_spawn_child_err() is used and the Win32 case now uses
CreateProcess() instead of a low-level execl() (which caused problems in
the past under Win32).
[Ralf S. Engelschall]
*) A few cosmetics and trivial enhancements to APXS to make the
generated Makefile more user friendly. [Ralf S. Engelschall]
*) Proxy Fix: The proxy special failure routine ap_proxyerror()
was updated to use the normal apache error processing, thereby allowing
proxy errors to be treated by ErrorDocument's as well. For this
purpose, a new module-to-core communication variable "error-notes"
was introduced; the proxy (and possibly other modules) communicates
its error text using this variable. Its content is copied to a new
cgi-env-var REDIRECT_ERROR_NOTES for use by ErrorDocuments.
The old proxy special error routine ap_proxy_log_uerror()
was replaced by regular ap_log_error() calls, many messages were made
more informative.
[Martin Kraemer] PR#494, 1259
*) SECURITY: A possible buffer overflow in the ftp proxy was fixed.
[Martin Kraemer]
*) Transform the configure message "You need root privileges for suEXEC"
from a fatal error into a (more friendly) warning because the building
("make") of Apache we can allow, of course. Root privileges are needed
only for the installation step ("make install"). So make sure the
user is aware of this fact but let him proceed as long as he can.
[Ralf S. Engelschall] PR#2288
*) Renamed three more functions to common ap_ prefix which we missed at the
Big Symbol Renaming because they're #defines and not real C functions:
is_default_port(), default_port(), http_method().
[Ralf S. Engelschall]
*) A zero-length name after a $ in an SSI document should cause
just the $ to be in the expansion. This was broken during the
security fixes in 1.2.5. [Dean Gaudet] PR#1921, 2249
*) Call ap_destroy_sub_req() in ap_add_cgi_vars() to reclaim some
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
*) Fix src/support/httpd.exp (DSO export file which is currently only
used under AIX) because of recent changes to function names.
[Ralf S. Engelschall]
Changes with Apache 1.3b7
*) Make sure a MIME-type can be forced via a RewriteRule even when no
substitution takes place, for instance via the following rule:
``RewriteRule ^myscript$ - [T=application/x-httpd-cgi]'' This was often
requested by users in the past to force a single script without a .cgi
extension and outside any cgi-bin dirs to be executed as a CGI program.
[Ralf S. Engelschall] PR#2254
*) A fix for protocol issues surrounding 400, 408, and
414 responses. [Ed Korthof]
*) Ignore MaxRequestsPerChild on WIN32. [Brian Behlendorf]
*) Fix discrepancy in proxy_ftp.c which was causing failures when
trying to connect to certain ftpd's, such as anonftpd.
*) Make mod_rewrite use ap_open_piped_log() for RewriteLog directive's
logfile instead of fiddling around itself with child spawning stuff.
[Ralf S. Engelschall]
*) Made RefererIgnore case-insensitive.
*) Mod_log_agent, mod_log_referer now use ap_open_piped_log for piped logs.
[Brian Behlendorf]
*) Replace use of spawn_child with ap_spawn_child_err_buff, to make everything
"safe" under Win32. In: mod_include.c, mod_mime_magic.c
[Brian Behlendorf]
*) Improve RFC1413 support. [Bob Beck <beck bofh.ucs.ualberta.ca>]
*) Fix support script `dbmmanage': It was unable to handle some sort
of passwords, especially passwords with "0" chars.
[Ralf S. Engelschall] PR#2242
*) WIN32: Clicking on "Last Modified" in a fancy index caused a crash. Fixed.
[Ben Laurie] PR#2238
*) WIN32: CGIs could cause a hang (because of a deadlock in the standard C
library), so CGI handling has been changed to use Win32 native handles
instead of C file descriptors.
[Ben Laurie and Bill Stoddard <wgstodda us.ibm.com>] PR#1129, 1607
*) The proxy cache would store an incorrect content-length in the cached
file copy after a cache update. That resulted in repeated fetching
of the original copy instead of using the cached copy.
*) The Makefiles assumed that DSO files are build via $(LD). This
is broken for two reasons: First we never defined at least LD=ld
somewhere to make sure this works (it was silently assumed that most Make
provide a built-in LD definition - ARGL!) and second using the generic LD
variable is not the truth. Instead a special variable named LD_SHLIB is
reasonable because although "ld" is usually the default, the command for
building DSO files can be "libtool" or even "cc" on some systems.
[Ralf S. Engelschall]
*) Replace the AddVersionPlatform directive with ServerTokens which
provides for more control over the format of the Server:
header line. SERVER_SUBVERSION is no longer supported;
all module should use the ap_add_version_component()
API function instead. [Jim Jagielski]
*) Support for the NCR MP/RAS 3.0
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
*) The LDFLAGS_SHLIB_EXPORT variable of src/Configuration[.tmpl] was
not retrieved in src/Configure and thus was not useable.
[Ralf S. Engelschall]
*) Various Makefile consistency cleanups:
- make OSDIR also automatically be relative to src/ like INCDIR
- SUBDIRS is now generated in src/Makefile only and not in
Makefile.config because it is a local define for this location.
- remove BROKEN_BPRINTF_FLAGS because is it no longer used inside
any Makefile but make sure that at least the "-K inline" is kept in
CFLAGS for SCO 5.
- update the "depend" targets in Makefile.tmpl files to use $(OSDIR), too.
- updated the dependencies theirself
- removed not existing SHLIB variable from "clean" targets
- replaced SHLIB_OBJS/SHLIBS_OBJ consistently with OBJS_PIC because OBJS
already exists and OBJS_PIC are also just plain objects and have not
directly to do with "shared" things. The only difference is that they
contain PIC. So OBJS_PIC is the more canonical name.
- Updated the Makefile-dependency lines for OBJS_PIC
- Removed the Makefile-dependency line in Configure to avoid double
definitions
- replaced ugly xx-so.o/xx.so-o hack with a clean and consistent usage
of xxx.lo as GNU libtool does with its PIC objects
- reduce local complexity in modules Makefile.tmpl by moving the last
existing target "depend" to the generation section in Configure, too.
- removed the historical $(SPACER) which was used in the past together
with BROKEN_BPRINTF_FLAGS to avoid zig-zags in the build process. This
is no longer needed.
- force the build and run of the gen_xxx programs under main/ as the
first step before building the objects because it looks cleaner
[Ralf S. Engelschall]
*) WIN32: Make Win32 work again after the /dev/null DoS fix.
[Ben Laurie]
*) WIN32: Check for buffer overflows in ap_os_canonical_filename.
[Ben Laurie]
*) WIN32: Don't force ISAPI headers to finish with \n.
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
*) When opening "configuration" files (like httpd.conf, htaccess
and htpasswd), Apache will not allow them to be non-/dev/null
device files. This closes a DoS hole. At the same time,
we use ap_pfopen to open these files to handle timeouts.
[Jim Jagielski, Martin Kraemer]
*) Apache will now log the reason its httpd children exit if they exit
due to an unexpected signal. (It requires a new porting define,
SYS_SIGLIST, which if defined should point to a list of text
descriptions of the signals available. See PORTING.) [Dean Gaudet]
*) WIN32: chdir() doesn't make sense in a multithreaded environment
like WIN32. Before, Win32 CGI's could have had sporadic failures
if a chdir call from one thread was made between another chdir call
and a spawn in another thread. So, for now don't chdir for CGI scripts
in WIN32. The current CGI "spec" is unclear as to whether it's
necessary. Long-term fix is to either serialize the chdir/spawn combo
or use WIN32 native calls to spawn a process. This temp fix was
necessary to remove this as a showstopper for 1.3's release.
[Brian Behlendorf]
*) Cleanup the suEXEC support in APACI and make it more safe:
1. Add big fat hint in INSTALL about risks and to read the
htdocs/manual/suexec.html document before using the suexec-related
configure options.
2. Make sure the user has at least provided one --suexec-xxxx option
(specifies suEXEC parameters) in addition to --enable-suexec option.
If only --enable-suexec is given APACI stops with a hint to INSTALL
and htdocs/manual/suexec.html documents.
3. Provide two additional --suexec-xxxx options to make the suEXEC
configuration complete (especially for package maintainers who else
had to patch the source tree) by providing ways to configure minimal
UID/GID and safe PATH, too.
[Ralf S. Engelschall]
*) Cleanup of the `configure --shadow' process:
- make sure the configure script creates its temporary files in the
shadow tree to avoid conflicts with parallel configure runs
- removed unnecessary option "-r" from "rm" call for Makefiles
- make sure the configure scripts creates the shadow-wrapper Makefile
only when no shadow trees already exists
- make sure "make distclean" removes the shadow-wrapper Makefile but only
when no more shadow trees exists
- overhauled mkshadow.sh script: now its more IFS-safe and approx. twice
as fast (in the past it needed 70sec, now it runs just 38sec)
- make sure CVS does not complain about the created files
Makefille.<gnutriple> and directories src.<gnutriple>
[Ralf S. Engelschall]
*) Added the ap_add_version_component() API routine and the
AddVersionPlatform core directive. The first allows modules to
declare themselves in the Server response header field value,
augmenting the SERVER_SUBVERSION define in the Configuration file
with run-time settings (more useful in a loadable-module environment).
AddVersionPlatform inserts a comment such as "(UNIX)" or "(Win32)"
into the server version string. [Ken Coar] PR#2056
*) Minor stability tweaks to avoid core dumps in ap_snprintf.
[Martin Kraemer]
*) Emit the "Accept-Range" header for the default handler.
[Brian Behlendorf] PR#1464
*) Add a note to httpd.conf-dist that apache will on some systems fail
to start when the Group # is set to a negative or large positive value.
[Martin Kraemer]
*) Make sure the module execution order is correct even when some modules
are loaded under runtime (`LoadModule') via the DSO mechanism:
1. The list of loaded modules is now a dynamically allocated one
and not the original statically list from modules.c
2. The loaded modules are now correctly setup by LoadModule for
later use by the AddModule command.
3. When the DSO mechanism for modules is used APACI's `install'
target now enables all created `LoadModule' lines per default because
this is both already expected by the user _and_ needed to avoid
confusion with the next point and reduces the Makefile.tmpl complexity
4. When the DSO mechanism for modules is used, APACI's `install'
target now additionally makes sure the module list is reconstructed
via a complete `ClearModuleList+AddModule...' entry.
5. The support tool `apxs' now also makes sure an AddModule command
is added in addition to the LoadModule command.
6. The modules.c generation was extended to now contain two
comments to make sure no one is confused by the confusing terminology
of loading/linking (we use load=link+load & link=activate instead of
the obvious load=activate & link=link :-( )
This way now there is no longer a difference under execution time between
statically and dynamically linked modules.
[Ralf S. Engelschall]
*) Fix the generated mod_xxx.c from "apxs -g -f xxx" after the
Big Symbol Renaming. [Ralf S. Engelschall]
*) Add a comment to mod_example.c showing the format of a FLAG command
handler. [Ken Coar]
*) Standardized the time format in mod_status to match that of other
places in the code (e.g. DATE_GMT). PR#1551
*) Fix handling of %Z in timefmt strings for those platforms with no time
zone information in their tm struct. [Paul Eggert <eggert twinsun.com>]
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
PR#754
*) Makes mod_rewrite, mod_log_config, mod_status and the ServerSignature
feature compatible with 'UseCanonicalName off' by changing
r->server->server_hostname to ap_get_server_name(). And I changed some
functions which use r->server->port to use ap_get_server_port() instead,
because if there's no Port directive in the config r->server->port is 0.
[Lars Eilebrecht]
*) get/set_module_config are trivial enough to be better off inline. Worth
1.5% performance boost. [Dean Gaudet]
*) Fix off-by-one error in ap_proxy_date_canon() in proxy_util.c
when ensuring 'x' is at least 30-chars big. [Jim Jagielski,
Brian Behlendorf]
*) [BS2000 security] BS2000 needs an extra authentication to initialize
the task environment to the unprivileged User id. Otherwise CGI scripts
would have a way to gain super user access. [Martin Kraemer]
*) Fix debug log messages for BS2000/OSD: instead of logging the whole
absolute path, only log base name of logging source as is done
in unix. [Martin Kraemer]
*) Ronald Tschalaer's Accept-Encoding patch - preserve the "x-" in
the encoding type from the Accept-Encoding header (if it's there)
and use it in the response, as that's probably what it'll be expecting.
*) Fix to mod_alias: translate_alias_redir is dealing with
a URI, not a filename, so the check for drive letters for win32
and emx is not necessary. [Dean Gaudet]
*) WIN32: Allow .cmd as an executable extension.
*) Make Apache header files, and some variables, C++ friendly.
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
*) Child processes can now "signal" (by exiting with a status
of APEXIT_CHILDFATAL) the parent process to abort and
shutdown the server if the error in the child process was
fatal enough. [Jim Jagielski]
*) mod_autoindex's find_itme() was sensitive to MIME type case.
[Jim Jagielski] PR#2112
*) Make sure the referer_log and agent_log entries in the default httpd.conf
file are also adjusted for the actual relative installation paths.
[Ralf S. Engelschall] PR#2175
*) WIN32: Extensive overhaul of the way UNCs are handled. [Ben Laurie]
*) WIN32: Make roots of filesystems (e.g. c:/) work. [Ben Laurie]
PR#1558
*) PORT: Various porting changes to support AIX 3.2, 4.1.5, 4.2 and 4.3.
Additionally the checks for finding the vendor DSO library were moved
from mod_so.c to Configure because first it needs $PLAT etc. and second
mod_so already uses an abstraction layer and does not fiddle with the
vendor functions itself.
[Jens-Uwe Mager, Ralf S. Engelschall]
*) PORT: Some optimization defines for NetBSD
*) PORT: Dynamic Shared Object (DSO) support for NetBSD.
[Jaromir Dolecek <dolecek ics.muni.cz>, Ralf S. Engelschall] PR#2158
*) Add Dynamic Shared Object (DSO) support for AIX (at least 4.2 but older
AIX variants should work fine, too. Even AIX 3.x should work). This is
accomplished by using the free DSO emulation code from Jens-Uwe Mager
which we put into a os/unix/os-dso-aix.c file.
[Ralf S. Engelschall]
*) PORT: Fix compiler warnings under AIX >= 4.2 where the manual pages imply
that we should use NET_SIZE_T == int but the include files force size_t.
[Ralf S. Engelschall]
*) Fix two bugs in select() handling in http_main.c.
[Roy Fielding]
*) Suppress "error(0)" messages for ap_log_error() when the APLOG_NOERRNO
is unset (as it is in situations like timeouts) where it is unclear
whether errno is set or not. [Martin Kraemer]
*) Just having APACI's localstatedir is too general and not enough for most
of the systems. 1.3b6 again required manual APACI patches by package
maintainers from Red Hat and FreeBSD because for their filesystem layout a
little bit more flexibility in configuring the paths is needed. Hence we
provide three additional configure options (--runtimedir, --logfiledir,
--proxycachedir) which now can be used for more granular adjustments if
--localstatedir is not enough to fit the particular needs. As a nice
side-effect this reduces some subdir fiddling in configure+Makefile.tmpl.
[Ralf S. Engelschall]
*) Make the install root for "make install" in APACI's Makefile overrideable
by package authors. This way we are even more friendly to package
maintainers (especially Debian and Red Hat) who build for the real prefix
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
via "configure --prefix=/<real>" but use a different local prefix via
"make root=/tmp/apache install" for rolling the package without bristling
the target location on their system.
[Ralf S. Engelschall]
*) Workaround sed limitations in APACI's configure script by now
substituting in chunks of 50 commands (because for instance HPUX's vendor
sed has a limit of max. 98 commands)
[Ralf S. Engelschall] PR#2136
*) Adding SOCKS5 support and fixing existing SOCKS4 support.
[Ralf S. Engelschall] PR#2140
*) Manually fix some symbols which were not renamed to prefix ap_ in the BIG
RENAMING process because they are defined as pre-processor macros instead
of real functions: bputc, bgetc, piped_log_write_fd, piped_log_read_fd
[Ralf S. Engelschall]
*) Workaround braindead AWK's when generating ap_config.h: The split() and
substr() functions cannot be nested under vendor AWK from Solaris 2.6.
[Ralf S. Engelschall] PR#2139
*) Various bugfixes and cleanups for the APACI configure script:
o fix IFS handling for _nested_ situation
o fix Perl interpreter search: take first one found instead of last one
o fix DSO consistency check
o print error messages to stderr instead of stdout
o add install-quiet for --shadow situation to Makefile stub
o reduce complexity by avoiding sed-hacks for rule and module list loops
[Ralf S. Engelschall]
*) Fix DEBUG_CGI situation in mod_cgi.c [David MacKenzie] PR#2114